restart
restart可以对一个或多个容器进行重启。如果容器是未启动的则会启动,如果是正在运行中的,则会重启
docker restart [OPTIONS] CONTAINER [CONTAINER...]
options
- -t int:在重启之前等待几秒,默认10秒
CONTAINER:容器
stop
stop命令可以停止一个或多个正在运行的容器
kill命令也可以用来停止容器
不同的是stop命令允许容器在停止之前有一定的时间来进行额外操作,如释放链接、关闭请求等
kill命令则会直接强制杀死容器
docker stop [OPTIONS] CONTAINER [CONTAINER...]
options
- -t int:等待n秒后如果还没停止,直接杀死,默认10秒
CONTAINER:容器
kill
kill命令可以杀死一个或多个正在运行的容器
docker kill [OPTIONS] CONTAINER [CONTAINER...]
options
- -sstring: 给容器发送一个信号,信号编号和linux原生命令kill的信号编号一致,默认值9,下文列出一些常用值
-s参数信号编号常用值
1:杀死并重新加载,也可用HUP表示
9:强制杀死,也可用KILL表示,默认值
15:正常停止,也可用TERM表示
rm
rm命令可以删除一个或多个容器
如果容器正在运行,则需要通过-f参数强制删除
docker rm [OPTIONS] CONTAINER [CONTAINER...]
options
- -f:强制删除,即使容器正在运行也可以删除
- -l:删除容器之间的网络关系,而不是容器本身
- -v: 删除容器和它挂载的卷
pause
pause命令可以暂停一个或多个正在运行的容器
docker pause CONTAINER [CONTAINER...]
CONTAINER:容器
unpause
unpause命令可以对一个或多个暂停的容器取消暂停
docker unpause CONTAINER [CONTAINER...]
CONTAINER:容器
create
create命令可以创建一个容器,但不运行它,在需要的时候可以使用start命令启动
和run命令的用法几乎一致,都会创建一个容器,如果容器依赖的镜像不存在都会从远程仓库拉取
run命令创建容器后会运行容器
create命令只是创建容器,不运行
docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
options
- -i: 以交互模式运行,通常与-t一起使用
- -t: 为容器分配一个伪终端,通常与-i一起使用
- -d: 后台模式运行容器,并返回容器id
- -p list: 指定端口映射,格式为宿主机端口:容器端口
- -P: 随机分配端口映射
- –name string: 给容器指定一个名称
- -m bytes: 限制容器可以使用的内存大小
- -v list: 把宿主机的磁盘路径挂载到容器的某个路径
- –volumes-from list: 绑定别的容器某个路径到此容器的某个路径
- -w: 指定容器的工作目录,默认是根目录
- –rm: 当容器停止运行时自动删除
- –hostname string: 指定容器的主机名
IMAGE:镜像
COMMAND:需要运行的命令
ARG:命令的参数
exec
exce命令可以在一个运行中的容器中执行一个命令
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
options
- -d: 命令在后台运行
- -i:保持标准输入,通常和-t一起使用
- -t: 分配一个伪终端,通常和-i一起使用
- -w string: 指定容器的路径
CONTAINER:容器
COMMAND:要执行的命令
ARG:命令的参数
ps
ps命令可以列出所有容器的列表,查看容器的基本信息。不加任何参数的情况下,默认只展示正在运行的容器
docker ps [OPTIONS]
options
- -a: 显示所有容器,默认只显示正在运行的
- -f filter: 根据条件过滤容器,过滤条件详见下文
- -n int:显示最后创建的n个容器,包含所有状态
- -l: 显示最新创建的容器,包含所有状态
- -q: 只显示容器id
- -s: 显示容器大小,默认不显示该列
- –no-trunc:显示内容不截断,默认情况下显示的容器是截断后的信息
- -f参数表示根据条件过滤搜索出来的镜像
KEY的可选值如下
id: 根据容器id过滤
name: 查看容器名称中包含给定字段的容器
exited: 根据容器退出的错误码进行过滤
status: 根据容器的状态进行过滤,状态可选值有:created、paused、exited、dead、running、restarting、removing
before: 只显示在某个容器之前创建的容器
since: 只显示在某个容器之后创建的容器
volume: 过滤绑定了某个目录的容器,只针对运行中的容器
publish: 根据宿主机端口过滤,只针对运行中的容器
expose: 根据容器端口过滤,只针对运行中的容器
inspect
inspect命令可以获取一个或多个容器或者镜像的元数据信息
元数据信息可以理解为容器或者镜像的详情,它比ps命令显示的内容要详细的多。比如说端口映射、挂载目录等,显示格式为json类型
docker inspect [OPTIONS] CONTAINER|IMAGE [CONTAINER|IMAGE...]
options
- -f string: 格式化输出结果,inspect默认显示整个文件的详情,-f参数可以指定只显示某些属性
- –s: 只对容器有效,显示容器的配置文件行数和大小,显示的结果中会多出SizeRw、SizeRootFs两个参数
- –type string: 指定要inspect的类型,container表示容器,image表示镜像,默认是容器。比如我有一个tomcat镜像,同时有一个名称为tomcat的容器,就可以用–type参数来指定要inspect是tomcat容器还是tomcat镜像
stats
stats命令可以可以监控容器的资源使用情况,如cpu使用情况、内存使用情况等。每秒刷新一次,直到使用ctrl+c退出
docker stats [OPTIONS][CONTAINER...]
options
- -a filter: 显示所有容器的资源使用情况,默认只显示正在运行的
- –format string:格式化输出结果
- –no-stream: 不间隔刷新,只显示第一次统计结果
- –no-trunc: 不截断显示信息,默认情况下有些字段只显示简略信息,如容器id
CONTAINER:容器
top
top可以查看容器的进程信息,docker exec CONTAINER ps也可以查看容器的进程。
不同的是,前者查看的是容器运行在宿主机的进程id。后者查看的是容器内的进程id
docker top CONTAINER [ps OPTIONS]
options
ps可选命令
CONTAINER:容器
rename
rename可以对容器进行重命名,在容器run时如果没有使用–name参数指定容器名称,可以使用rename进行命名
docker rename CONTAINER NEW_NAME
attach
attach可以连接到容器内,这个容器必须是正在运行的容器,不是运行状态时,会报错
当使用ctrl+c或exit等命令退出容器时,会导致容器停止运行。所以,不建议在生产环境使用该命令。生产环境可以使用exec命令进入容器
docker attach [OPTIONS] CONTAINER
options
- –sig-proxy=false boolean: 默认true,为false时可以防止容器遇到ctrl+c退出信号时停止运行
CONTAINER:容器
update
update可以对容器的配置进行更新
docker update [OPTIONS] CONTAINER [CONTAINER...]
options
- -m bytes: 指定容器的内存大小,单位可选b、k、m、g
- –memory-swap bytes:–cpu demecial:cpu资源,如1.5表示可以使用宿主机的1.5个cpu资源
- –cpuset-cpus string:容器可以使用宿主机的cpu内核编号,0-3表示4个内核都可以使用,1,3表示只能使用1和3号内核
- –restart string: 指定容器的退出的重启策略。no:不重启;on-failure:容器非正常退出时重启;on-failure:3:非正常退出时重启3次;alaways:总是重启;unless-stopped:在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器
- –pids-limit int: 限制容器进程或线程的数量,默认-1表示不限制
CONTAINER:容器
logs
查看容器的日志
docker logs [OPTIONS]
options
- -f: 跟踪日志的实时输出
- –until string:查看某个时间点之前的日志,格式:2021-06-03T19:30:20Z。或使用相对时间10m,表示10分钟之前
- –since string:查看某个时间点之后的日志,格式:2021-06-03T19:30:20Z。使用相对时间10m,表示10分钟之内
- -n int: 查看最后几行日志,默认显示全部
- -t: 日志中显示时间戳
- –tail=1000 (查看容器前多少行的日志)
CONTAINER:容器
wait
wait命令可以阻塞一个或多个容器直到容器退出并打印出他们的退出代码
docker wait CONTAINER [CONTAINER...]
CONTAINER:容器
port
列出端口的映射关系
docker port CONTAINER [PRIVATE_PORT[/PROTO]]
CONTAINER:容器
PRIVATE_PORT:容器端口
PROTO:端口使用的协议