常用命令:

docker run

–用于指定镜像创建容器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
参数:
-d, --detach=false 指定容器运行于前台还是后台,默认为false。
-i, --interactive=false 打开标准输入用于控制台交互
-t, --tty=false 分配tty设备用来支持终端登录,默认为false。
-u, --user="" 指定容器的用户
-a, --attach=[] 登录容器,必须是以docker run -d启动的容器。
-w, --workdir="" 设置容器的工作目录
-c, --cpu-shares=0 设置容器CPU权重,在CPU共享场景下使用。
-e, --env=[] 设置环境变量,容器中可使用该环境变量。
-m, --memory="" 设置容器的内存上限
-p, --public=[] 设置容器暴露的端口
-h, --hostname="" 设置容器的主机名
-v, --volume=[] 设置容器挂载的存储卷,也就是挂载到容器的某个目录。
--volumn-from=[] 给容器挂载其他容器上的卷,也就是挂载到容器的某个目录。
--cap-add=[] 添加权限
--cap-drop=[] 删除权限
--cidfile="" 运行容器后在指定文件中写入容器PID值,这是典型的监控系统的用法。
--cpuset="" 设置容器可以使用那些CPU,此参数用来设置容器独占CPU。
--device=[] 添加主机设备给容器,相当于设备直通。
--dns=[] 设置容器的DNS服务器
--dns-search=[] 设置容器的DNS搜索域名,写入到容器的/etc/resolv.conf文件。
--env-file=[] 设置环境变量文件,文件格式为每行一个环境变量。
--expose=[] 设置容器暴露的端口,即修改镜像的暴露端口。
--link=[] 设置容器之间的关联关系,使用其他容器的IP、env等信息。
--lxc-conf=[] 设置容器的配置文件,只有在指定--exe-driver=lxc时使用。
--name="" 设置容器的名称,可通过名字进行容器管理,links特性需要使用名字。
--net="bridge" 容器网络设置
--privileged=false 设置容器是否为特权容器,特权容器拥有所有的capabilities。
--restart="no" 设置让其停止后的重启策略
--rm=false 设置容器停止后自动删除容器,不支持以docker run -d启动的容器。
--sig-proxy=true 设置由代理接收并处理信号,但SIGCHLD、SIGSTOP、SIGKILL不能被代理。

实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
运行一个在后台执行的容器,同时使用控制台管理。
$ docker run -i -t -d ubuntu:latest

运行一个带命令且在后台不断执行的容器,不直接展示容器内部信息。
$ docker run -d ubuntu:latest ping www.docker.com

运行一个在后台不断执行的容器,同时带有命令,程序被终止后还能重启继续跑,可用控制台管理。
$ docker run -d --restart=always ubuntu:latest ping www.docker.com

为容器指定一个名字
$ docker run -d --name=ubuntu_server ubuntu:latest

容器暴露80端口并指定宿主机81端口与其通信(宿主机端口:容器端口)
$ docker run -d --name=ubuntu -p 81:80 ubuntu:latest

指定容器内目录与宿主机目录共享(宿主机目录:容器目录)
$ docker run -d --name=ubuntu_server -v /home/www:/var/www ubuntu:latest

设置宿主机与docker的共享目录
$ docker run -d -i -t -p 80:80 -v /share/swoft:/var/www/swoft --name swoft swoft/swoft /bin/bash

dokcer exec

– exec 用于在运行中的容器中执行命令

1
2
3
4
# 选项
-d 分离模式即在后台运行
-i 即使没有附加也保持STDIN标准输入打开
-t 分配一个伪终端

实例:

1
2
# 在容器test中以交互模式执行容器内/root/test.sh脚本
$ docker exec -it test /bin/sh /root/test.sh

docker logs

– logs用于获取容器的日志

1
2
3
4
5
# 选项
-f 跟踪日志输出
--since 显示某个开始时间的所有日志
-t 显示时间戳
--tail 仅仅列出最新n条容器日志

实例:

1
2
3
4
5
# 跟踪查看test容器的日志
$ docker logs -f test

# 查看test容器从2019年4月1日以后的最新10条日志
$ docker logs --since="2019-04-01" --tail=10 test

docker port

– port用于列出指定容器的端口映射,或者用于查找将PRIVATE_PORT NAT到面向公众的端口。

1
2
# 查看test容器的端口映射情况
$ docker port test

docker tag

– tag用于设置镜像标签

1
2
# 选项
- f, --force=false 强制设置,即使已拥有标签,如远程仓库设置标签。

docker save