docker container help 命令查看 Docker 支持的容器操作子命令
创建容器
新建容器
可以使用 docker create 命令新建一个容器,例如:
docker create -it ubuntu:latest
使用 docker [container] create 命令新建的容器处于停止状态,可以使用 docker [container] start 命令来启动它。
启动容器
使用 docker [container] start 命令来启动一个已经创建的容器。 例如,启动刚创建的 ubuntu 容器 :
$ docker start af
新建并启动窑器
所需要的命令主要为 docker [container]run,等价于先执行 docker [container] create 命令,再执行 docker [container] start 命令 。
守护态运行
更多的时候,需要让 Docker 容器在后台以守护态( Daemonized)形式运行。 此时,可以通过添加- d 参数来实现。
docker run -d ubuntu /bin/sh -c "while true;do echo hello world; sleep 1; done"
查看容器输出
要获取容器的输出信息,可以通过 docker [container] logs 命令 。
停止容器
介绍 Docker 容器的 pause/unpause 、 stop 和 prune 子命令 。
暂停容器
可以使用 docker [container] pause CONTAINER [CONTAINER ... ]命令来暂停一个运行中的容器。
docker pause 49472392a837 暂停容器
docker unpause 49472392a837 恢复容器到运行状态
终止容器
可以使用 docker [container] stop 来终止一个运行中的容器。 该命令的格式为docker [container] stop [-t I - -time [=10]] [CONTA工NER ... ] 。
docker stop 49472392a837
此时,执行 docker container prune 命令,会自动清除掉所有处于停止状态的容器。此外,还可以通过 docker [container] kill 直接发送 SIGKILL 信号来强行终止容器 。
可以用 docker ps -qa 命令看到所有容器的 ID。
处于终止状态的容器,可以通过 docker [container] start 命令来重新启动:
docker start 49472392a837
docker [container] restart 命令会将一个运行态 的容器先终止,然后再重新启动:
进入容器
在使用- d 参数时,容器启动后会进入后台,用户无法看到容器中的信息,也无法进行操作。这个时候如果需要进入容器进行操作,推荐使用官方的 attach 或 exec 命令。
attach 命令
docker attach 49472392a837
然而使用 attach 命令有时候并不方便 。 当多个窗口同时 attach 到同一个容器的时候,所有窗口都会同步显示;当某个窗口因命令阻塞时,其他窗口也无法执行操作了 。
exec 命令
从 Docker 的 1.3.0 版本起, Docker 提供了一个更加方便的工具 exec 命令,可以在运行中容器内直接执行任意命令 。
docker exec -it 381ab8e8aeeb /bin/bash
可以看到会打开一个新的 bash 终端,在不影响容器内其他应用的前提下,用户可以与容器进行交互。通过指定 - it 参数来保持标准输入打开,并且分配一个伪终端。 通过 exec 命令对容器执行操作是最为推荐的方式 。
删除容器
docker rm 381ab8e8aeeb
默认情况下, docker rm 命令只能删除已经处于终止或退出状态的容器,并不能删除还处于运行状态的容器 。如果要直接删除一个运行中的容器,可以添加 - f 参数。 Docker 会先发送 S I GKILL 信号给容器,终止其中的应用,之后强行删除 :
docker rm -f 381ab8e8aeeb
导人和导出容器
导出容器
导出容器是指,导出一个已经创建的容器到一个文件,不管此时这个容器是否处于运行状态 。
可以使用 docker [container ] export 命令,该命令格式为:docker [container) export [-o | - -output [=””) ) CONTAINER
其中,可以通过- 0 选项来指定导出的 tar 文件名,也可以直接通过重定向来实现。
docker export -o test_export_container.rar lc9
之后,可将导出的 tar 文件传输到其他机器上,然后再通过导入命令导入到系统中,实现容器的迁移 。
导入容器
导出的文件又可以使用 docker [container ] import 命令导人变成镜像,该命令格式为 :
docker import [-c | --change[=[]]] [-m | -- message[=MESSAGE]] file | URL | -[REPOSITORY [:TAG]]
用户可以通过 - c, -change=[]选项在导人的同时执行对容器进行修改的 Dockerfile指令 。
docker import test_export_container.rar test/ubuntu:v1.0
使用 docker load 命令来导人一个镜像文件,与 docker [container] import 命令十分类似 。
实际上,既可以使用 docker load 命令来导入镜像存储文件到本地镜像库,也可以使用 docker [container] import 命令来导入一个容器快照到本地镜像库 。
这两者的区别在于 : 容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积更大。 此外,从容器快照文件导人时可以重新指定标签等元数据信息 。
查看容器
查看容器详情
查看容器详情可以使用 docker container inspect [OPTIONS] CONTAINER[CONTAINER . .. ]子命令 。
例如,查看某容器的具体信息,会以 json 格式返回包括容器 Id 、 创建时间、路径、状态、镜像、配置等在内的各项信息:
docker inspect 1c9220d16667
查看容器内进程
查看容器内进程可以使用 docker [container] top [OPTIONS] CONTAINER[CONTAINER . .. ] 子命令 。
这个子命令类似于 Linux 系统中的 top 命令,会打印出容器内的进程信息,包括 PID 、用户、时间、命令等 。 例如,查看某容器内的进程信息,命令如下:
docker top 1c9220d16667
查看统计信息
查看统计信息可以使用 docker [container] stats [OPTIONS] [CONTAINER ... ]子命令,会显示 CPU 、内存、存储、网络等使用情况的统计信息 。
支持选项包括 :
口-a, --all :输出所有容器统计信息,默认仅在运行中;
口 --format string :格式化输出信息;
口 --no-stream :不持续输出,默认会自动更新持续实时结果;
口 --no-trunc :不截断输出信息 。
docker stats 1c9220d16667
docker stats --no-stream 1c9220d16667
其他容器命令
复制文件
命令格式为 docker [container] cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH | - 。 支持的选项包括 :
docker cp /data 1c9220d16667:/tmp/
查看变更
查看容器内文件系统的变更。 命令格式为 docker [container] diff CONTAINER。
docker diff 1c9220d16667
查看端口映射
可以查看容器的端口映射’情况。 命令格式为 docker container port CONTAINER [PRIVATE_PORT[/PROTO ]] 。
docker port 1c9220d16667
更新配置
container update 命令可以更新容器的一些运行时配置,主要是一些资源限制份额。命令格式为 docker [container] update [OPTIONS] CONTAINER [CONTAINER .. . ] 。
小结