启动容器
单次启动容器
docker run [image] [命令]
交互式容器
docker run -i -t <image> /bin/bash
-i: --interative=true | fasle ,默认是 false,告诉 docher 守护进程为容器始终打开标准输入-t:--tty=true | false ,默认是 false,为容器创建一个伪 tty 终端/bin/bash:在容器启动时运行 bash 命令
自定义容器名
docker run --name=<自定义名> -i -t <image> /bin/bash
第一次启动
docker run -i -t ubuntu /bin/bash
第一次启动尚未用过的容器(比如:安装完 Docker 第一次创建 Ubuntu 容器),会提示无法在本地找到映像“ubuntu:最新版” ,然后执行下载:
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
423ae2b273f4: Pull complete
de83a2304fa1: Pull complete
f9a83bce3af0: Pull complete
b6b53be908de: Pull complete
Digest: sha256:04d48df82c938587820d7b6006f5071dbbffceb7ca01d2814f81857c631d44df
Status: Downloaded newer image for ubuntu:latest
root@e4e83623d3a0:/#
可以看到容器 id 为:e4e83623d3a0 。
以守护态运行容器
交互式容器转守护态
docker run -i -t --name=ubuntu_test [image] /bin/bash
以守护形式运行该容器,前输入 [Ctrl+P] ,再输入 [Ctrl+Q] 。
以守护态启动容器
docker run -d [-i] [-t] [id/容器名] [/bin/bash]
-d:后台启动- 其余参数同交互式创建
创建成功会返回容器的长id,过程如下:
$ docker run -d ubuntu
4021afee76279836d4b497b55a8e921f1ade8e993bebfe0f8a02b799a2a7df7a
查看容器列表
docker ps [-a] [-l]
- 无参数:
docker ps显示当前运行的容器,如果容器停止了,表格为空。 -a:显示所有容器-l:显示最新 创建 的容器
查看容器信息
docker inspect [CONTAINER NAME/ID]
停止和启动停止容器
暂停容器
docker pause [CONTAINER NAME/ID]
终止容器
docker stop [CONTAINER NAME/ID]
kill命令也能终止容器,为什么不推荐使用它呢?
stop支持“优雅退出”。先发送 SIGTERM=19 信号,在一段时间之后(10s)再发送 SIGKILL=9 信号。Docker 内部的应用程序可以接收 SIGTERM=19 信号,然后做一些“退出前工作”,比如保存状态、处理当前请求等。
kill则发送 SIGKILL=9 信号,应用程序直接退出。
启动停止容器
docker start [-i] [CONTAINER NAME/ID]
-i:交互方式启动
重启容器
docker restart [CONTAINER NAME/ID]
过程:先 stop 终止,再 start 启动。
进入容器
推荐使用 exec 命令进入容器。
exec
exec 用以在容器中执行任意命令,在运行容器中启动新进程。
docker exec [-d] [-i] [-t] [CONTAINER NAME/ID] [COMMAND] [ARG]
进入容器:
docker exec -it [CONTAINER NAME/ID] /bin/bash
-
打开容器的一个新的 bash 终端,并以
-it保持标准输入打开。不加
-it和/bin/bash,则只执行一次命令并输出。示例:$ docker exec blivechat ls Dockerfile $
attach
docker attach [OPTIONS] [CONTAINER NAME/ID]
-
Options: --detach-keys string 指定推出 attach 模式的快捷键序列 --no-stdin 是否打开标准输出 --sig-proxy 是否代理收到的系统信号给应用程序
注意:多个 attach 同时访问时,其中一个进行操作,所有 attach 都同步显示。当然,单个阻塞全部阻塞。
查看容器输出、日志
docker logs [-f] [-t] [--tail] [CONTAINER NAME/ID]
-
无参数:不指定,返回所有日志
-
-f:--follow=true | false ,默认为 false ,一直跟踪日志变化并返回结果。实时返回,Ctrl+C停止返回。 -
-t:--timestamps=true | false ,默认为 false,在返回结果上加上时间戳 -
--tail:后跟需返回的日志数量。
查看容器进程
docker top [CONTAINER NAME/ID]
复制文件
docker cp [FILE] [CONTAINER NAME/ID]:[PATH]
[FILE]为宿主机文件,[CONTAINER NAME/ID]:[PATH]为指定的容器存储文件的目标路径。
查看端口映射
docker port [CONTAINER NAME/ID]
更新配置
docker update [OPTIONS] CONTAINER [CONTAINER...]OPTIONS 说明
名称 描述 --blkio-weight阻塞IO (相对权重),介于10到1000之间,0表示禁用(默认禁止) --cpu-period限制CPU CFS(完全公平的调度程序)期限 --cpu-quota限制CPU CFS(完全公平的调度程序)配额 --cpu-rt-periodAPI 1.25+,将CPU实时时间限制为微秒--cpu-rt-runtimeAPI 1.25+,将CPU实时运行时间限制为微秒--cpu-shares,-cCPU份额(相对权重) --cpusAPI 1.29+,CPU数量--cpuset-cpus允许执行的CPU(0-3,0,1) --cpuset-mem允许执行的MEM(0-3,0,1) --kernel-memory内核内存限制 --memory-swap交换限制等于内存加交换,“-1”以启用无限交换 --memory-reservatio内存软限制 --memory,-m内存限制 --pids-limitAPI 1.40+,调节容器pids限制(-1表示无限制)--restart容器退出时重新启动策略以应用 更多用法请查看:https://docs.docker.com/engine/reference/commandline/update/