1.Docker 常用命令
docker images # 列出本地镜像
docker rmi [OPTIONS] IMAGE [IMAGE...] # 删除本地一个或多个镜像
docker ps
docker ps [-a] # 查看正在运行的容器
docker pull [OPTIONS] NAME[:TAG|@DIGEST] #从镜像仓库中拉取或者更新指定镜像
docker run [OPTIONS] IMAGE [COMMAND] [ARG...] #创建一个新的容器并运行一个命令
docker build [OPTIONS] IMAGE [COMMAND] [ARG...] #用于使用 Dockerfile 创建镜像。
docker exec -it mysql bin/bash # 进入正在运行的容器
1.1docker run 命令详解
语法
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS说明:
• -d: 后台运行容器,并返回容器ID;
• -i: 以交互模式运行容器,通常与 -t 同时使用;
• -P: 随机端口映射,容器内部端口随机映射到主机的端口
• -p: 指定端口映射,格式为:主机(宿主)端口:容器端口(小写p)
• -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
• --name="nginx-lb": 为容器指定一个名称;
• -e username="ritchie"、MYSQL_ROOT_PASSWORD=123456: 设置环境变量;
• --volume , -v: 挂载文件(挂载前宿主机文件需要授权chmod 777 file,才可挂载)
1.2 容器生命周期管理
start/stop/restart/kill
rm # 删除一个或多个容器
pause/unpause #暂停/恢复所有进程
create
exec #在运行的容器中执行命令
2.Dockrfile 指令
(0)RUN 命令
RUN 命令后 指定在镜像构建时要运行的命令
安装软件:
RUN yum -y update && \ yum -y install wget\ curl\ git \ vim \ python3 python3-pip
设置镜像:RUN sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
(1)CMD命令
CMD 指令用于指定一个容器(启动时)要运行的命令。 CMD命令在启动时可被 docker run 覆盖 (一般全局只有一个)
(2)ENTRYPOINT
类似CMD命令,entrypoint 指令提供的命令不容易被 docker run 覆盖
总结: 指定容器创建后要执行的指令,入口
ENTRYPOINT ["docker-entrypoint.sh"]
指定容器启动时要运行的脚本,目录与dockerfile
位于同一目录
(3)WORKDIR
Workdir 指令指定工作目录,entrypoint 和 cmd 命令运行在该目录下
(4)ENV
env 指令在镜像构建中设置环境变量 docker run 时的-e也可指定环境变量
(5)USER
user 指令 指定运行用户(镜像以什么样的用户运行)
(6)VOLUME
volume 指令向容器中添加卷,可以挂载宿主机目录(用于共享数据)
(7)ADD
用来将构建环境下(dockerfile 目录下)的文件和目录复制到镜像中(用来将宿主机上的文件复制到镜像中)
(8)COPY
Copy 将构建上下文中的文件复制到容器目录中(对dockerfile 存在目录下的文件进行复制) Copy
指令的目的位置必须是容器内部一个绝对的路径