常用命令:
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