一、Docker基础命令
- 启动docker:systemctl start docker
- 关闭docker:systemctl stop docker
- 重启docker:systemctl restart docker
- docker设置随服务启动而自启动:systemctl enable docker
- 查看docker 运行状态:systemctl status docker
- 查看docker 版本号信息:docker version/docker info
- docker 帮助命令:docker --help
- 查看docker具体命令的使用帮助:docker ps --help
二、Docker本地镜像管理
查看本地镜像列表[images]
语法: docker images [OPTIONS] [REPOSITORY[:TAG]]
OPTIONS说明:
-
-a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层);
-
--digests :显示镜像的摘要信息;
-
-f :显示满足条件的镜像;
-
--format :指定返回值的模板文件;
-
--no-trunc :显示完整的镜像信息;
-
-q :只显示镜像ID。
docker images
三、Dockerfile 指令详解
1、 FROM 指定基础镜像
FROM 指令用于指定其后构建新镜像所使用的基础镜像。FROM 指令必是 Dockerfile 文件中的首条命令,启动构建流程后,Docker 将会基于该镜像构建新镜像,FROM 后的命令也会基于这个基础镜像。
FROM语法格式为:
FROM <image>
或
FROM <image>:<tag>
或
FROM <image>:<digest>
通过 FROM 指定的镜像,可以是任何有效的基础镜像。FROM 有以下限制:
FROM 必须 是 Dockerfile 中第一条非注释命令
在一个 Dockerfile 文件中创建多个镜像时,FROM 可以多次出现。只需在每个新命令 FROM 之前,记录提交上次的镜像 ID。
tag 或 digest 是可选的,如果不使用这两个值时,会使用 latest 版本的基础镜像
2、Docker使用Dockerfile创建镜像[build]
语法: docker build [OPTIONS] PATH | URL | -
OPTIONS说明:
- --build-arg=[] :设置镜像创建时的变量;
- --cpu-shares :设置 cpu 使用权重;
- --cpu-period :限制 CPU CFS周期;
- --cpu-quota :限制 CPU CFS配额;
- --cpuset-cpus :指定使用的CPU id;
- --cpuset-mems :指定使用的内存 id;
- --disable-content-trust :忽略校验,默认开启;
- -f :指定要使用的Dockerfile路径;
- --force-rm :设置镜像过程中删除中间容器;
- --isolation :使用容器隔离技术;
- --label=[] :设置镜像使用的元数据;
- -m :设置内存最大值;
- --memory-swap :设置Swap的最大值为内存+swap,"-1"表示不限swap;
- --no-cache :创建镜像的过程不使用缓存;
- --pull :尝试去更新镜像的新版本;
- -q :安静模式,成功后只输出镜像ID;
- --rm :设置镜像成功后删除中间容器;
- --shm-size :设置/dev/shm的大小,默认值是64M;
- --ulimit :Ulimit配置。
实例:
使用当前目录的Dockerfile创建镜像:
docker build -t w3xue/ubuntu:v1 .
使用URL github.com/creack/docker-firefox 的 Dockerfile 创建镜像:
docker build github.com/creack/docker-firefox
3、Dcoker查看指定镜像的创建历史[history]
语法 :docker history [OPTIONS] IMAGE
OPTIONS说明:
- -H :以可读的格式打印镜像大小和日期,默认为true;
- --no-trunc :显示完整的提交记录;
- -q :仅列出提交记录ID。
实列:
查看容器nginx的创建历史记录:
docker history nginx
4、 RUN 执行命令
在镜像的构建过程中执行特定的命令,并生成一个中间镜像。格式:
#shell格式
RUN <command>
#exec格式
RUN ["executable", "param1", "param2"]
RUN 命令将在当前 image 中执行任意合法命令并提交执行结果。命令执行提交后,就会自动执行 Dockerfile 中的下一个指令。
层级 RUN 指令和生成提交是符合 Docker 核心理念的做法。它允许像版本控制那样,在任意一个点,对 image 镜像进行定制化构建。
RUN 指令创建的中间镜像会被缓存,并会在下次构建中使用。如果不想使用这些缓存镜像,可以在构建时指定 --no-cache 参数,如:docker build --no-cache。
OPTIONS说明:
- -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
- -d: 后台运行容器,并返回容器ID;
- -i: 以交互模式运行容器,通常与 -t 同时使用;
- -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
- --name="nginx-lb": 为容器指定一个名称;
- --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
- --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
- -h "mars": 指定容器的hostname;
- -e username="ritchie": 设置环境变量;
- --env-file=[]: 从指定文件读入环境变量;
- --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
- -m :设置容器使用内存最大值;
- --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
- --link=[]: 添加链接到另一个容器;
- --expose=[]: 开放一个端口或一组端口;
实例:
使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为testNginx :
docker run --name testNginx -d nginx:latest
四、查看本地正在运行的容器[ps]
语法: docker ps [OPTIONS]
OPTIONS说明:
-
-a :显示所有的容器,包括未运行的。
-
-f :根据条件过滤显示的内容。
-
--format :指定返回值的模板文件。
-
-l :显示最近创建的容器。
-
-n :列出最近创建的n个容器。
-
--no-trunc :不截断输出。
-
-q :静默模式,只显示容器编号。
-
-s :显示总的文件大小。
docker ps
五、Dcoker获取容器的日志[logs]
语法: docker logs [OPTIONS] CONTAINER
OPTIONS说明:
- -f : 跟踪日志输出
- --since :显示某个开始时间的所有日志
- -t : 显示时间戳
- --tail :仅列出最新N条容器日志
实例:
跟踪查看容器yyflightNginx的日志输出(帮你查看这个容器在某个时间段被执行了什么操作):
docker logs -f yyflightNginx
六、Docker列出指定的容器的端口映射[port]
docker port :列出指定的容器的端口映射,或者查找将PRIVATE_PORT NAT到面向公众的端口。
实例:
查看容器testNginx的端口映射情况:
docker port testNginx
七、Docker删除本地一个或多少镜像[rmi]
语法: docker rmi [OPTIONS] IMAGE [IMAGE...]
OPTIONS说明:
- -f :强制删除;
- --no-prune :不移除该镜像的过程镜像,默认移除;
实例:
强制删除本地镜像nginx/ubuntu
docker rmi -f nginx/ubuntu