镜像 image
docker pull node:16.18.0
docker images
-a 所有历史
-q 只获取id
docker rmi node
-f 强制删除
docker rmi -f $(docker images -aq)
容器 ps
docker run -it node /bin/bash
-it 会进入这个容器交互 使用/bin/bash进入
cont +q+p 退出容器保持后台运行
docker ps
-a 所有历史
-q 只获取id
docker rm 40cd3261d3d4
-f 强制删除
docker rm -f $(docker ps -aq)
docker ps start [容器id]
docker ps restart [容器id]
docker ps stop [容器id]
docker ps kill [容器id]
docker exec -it [容器id] /bin/bash 会新开一个终端窗口
docker attach [容器id] 会进入之前的窗口
拷贝容器内的文件到主机上
在容器中home下创建文件
touch chuan.ts
退出容器
exit
再执行
docker cp 57cab5e1dd67:/home/chuan.ts /home
部署nginx
docker run -it --rm nginx
--rm 会在退出容器后删除这个容器
docker run -d --name nginx01 -p 80:80 nginx
-d 后台运行
--name 给容器起名字
-p 端口号映射 宿主机:容器
将自己的容器打成image
docker commit -m='nginx添加文件' -a='lio' e3cb3fcaf828 nginx2:1.0
docker images
数据卷
docker run -d -p 3306:3306 -v /home/mysql/conf.d:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7n
-d 后台运行
-p 将宿主机的端口和容器内的端口映射
-v 宿主机文件地址:容器文件地址 会将这两个文件地址同步可以互相修改
-e 变量MYSQL_ROOT_PASSWORD root的密码
-name 容器名
-v 容器内路径:ro rw
ro是只读
rw是默认的可读写
开启ro后只有宿主机可以修改容器内不能修改
-v 卷名:容器内路径
-v /宿主机路径:容器内路径
docker volume ls
docker volume inspect nginxconfig
--valumes-from 容器名 镜像名
docker run -it --name test2 --volumes-from test chuan/centos
Dockerfile
创建Dockerfile文件
FROM centos
VOLUME ["volume01","volume02"]
CMD echo "---end---"
CMD /bin/bash
Dockerfile命令
FROM node:latest 基础镜像
MAINTAINER lio 镜像作者
RUN npm install 镜像运行的时候需跑的命令
ADD MySQL image 添加镜像
WORKDIR /app 镜像的工作目录
VOLUME 挂在的数据卷位置
EXPOSE 3400 导出的端口号
CMD echo 指定这个容器在启动时运行的命令只有最后一个生效,可被替代
ENTRYPOINT 指定这个容器在启动时运行的命令可追加命令
ONBUILD
COPY 将文件拷贝到镜像中
ENV 构建的时候设置环境变量