主要内容:

    O、概念

    一、创建&启动容器

    二、查看容器&查看容器日志

    三、进入&停止&删除容器 

    四、导入&导出容器

    五、其他容器命令

 

O、概念

Docker容器是镜像的一个运行实例,容器带有运行时需要的可写文件层,而镜像是静态的只读文件。可以使用docker container help命令查看Docker支持的容器操作子命令。

 

一、创建&启动容器

 1.1. 创建容器命令 (参数可用man docker-create来查看)命令,这样新建的容器处于停止状态。

   语法:docker create [OPTIONS] CONTAINER [COMMAND] [ARG...]

   创建一个apline带3.8版本的容器:

docker create -it alpine:3.8

docker COMMAND 显示完整的_docker

 

 1.2. 启动容器命令(参数可用man docker-start来查看),用来启动已创建的容器。

   语法:docker start [OPTIONS] [CONTAINER] [CONTAINER...]

   CONTAINER:表示可以同时启动多个容器。

docker COMMAND 显示完整的_历史记录_02

 

 1.3. 创建并启动容器命令(参数可用man docker-run来查看),stop容器后也可以用该命令启动容器。

   语法:docker run [OPTIONS] CONTAINER [COMMAND]

   常用参数:

    -it:-i表示保持标准输入是否打开,-t表示是否分配一个伪终端;

    -d:表示是否在后台运行容器;

    --rm:表示容器退出后是否删除;

    -p:表示映射端口;

    --name:指定容器别名;

   当用run来创建并启动容器时,Docker在后台标准执行如下:

    - 检查本地是否存在镜像,不存在则下载镜像;

    - 利用镜像创建并启动容器;

    - 分配一个文件系统给容器,并在只读的镜像外层挂载一层可读写层;

    - 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去;

    - 从网桥的地址池配置一个IP地址给容器;

    - 执行用户指定的应用程序;

    - 执行完毕后容器被自动终止;

   创建并启动容器,并允许用户交互(exit 或 ctrl + d 表示退出):

docker run -it alpine:3.8 /bin/sh

docker COMMAND 显示完整的_Docker_03

 

 1.4. 重启容器命令(参数可用man docker-restart来查看)。

   语法:docker restart [OPTIONS] CONTAINER [COMMAND]

   这个命令会将一个运行中的容器先终止,然后再重新启动。

 

二、查看容器&查看容器日志

 2.1. 查看容器列表命令(参数可用man docker-ps来查看)。

   语法:docker ps [OPTIONS]

   常用参数:

    -a, --all:显示所有容器,包括停止运行的容器;

    -f, --filter:过滤容器(如 -f --name=ne$,表示以ne结尾的容器名);

    -l, --latest:显示最近创建的容器;

    --no-trunc:不截断输出内容(有时候command那列太长则会显示不完全);

 

2.2. 查看容器信息命令(参数可用man docker-inspect来查看)。 

   语法:docker inspect [OPTIONS] NAME|ID

   查看容器的网络配置,grep用来过滤查看哪个配置,-A用来指定显示的行数:

docker inspect 8d | grep Networks -A 20

 

docker COMMAND 显示完整的_Docker_04

 

2.3. 查看容器内进程(参数可用man docker-top来查看)。 

   语法:docker top CONTAINER

docker COMMAND 显示完整的_历史记录_05

 

2.4. 查看容器统计信息(参数可用man docker-stats来查看),会显示CPU、内存、存储、网络的使用情况信息。 

   语法:docker stats [OPTIONS] [CONTAINER...]

docker stats -a

docker COMMAND 显示完整的_Docker_06

 

2.5. 查看容器输出内容(参数可用man docker-logs来查看),用来获取容器输出信息。 

   语法:docker logs [OPTIONS] CONTAINER

   常用参数:

    -f, -follow:保持持续输出;

    -tail string:输出最近的若干日志:

    -t, -timestamps:显示时间戳信息;

    -since string:输出某个时间开始的日志;

    -until string:输出某个时间之前的日志;

    -details:打印详细信息;

 

三、进入&停止&删除容器

 3.1. 进入容器命令(参数可用man docker-exec来查看)。

   语法:docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

   进入容器:

docker exec -it 8d /bin/sh

   

docker COMMAND 显示完整的_Docker_07

 

 3.2. 暂停&恢复容器命令(参数可用man docker-pause 或 man docker-unpause来查看)。

   语法:docker pause CONTAINER [CONTAINER...]  /  docker unpause CONTAINER [CONTAINER...]

   暂停和恢复容器:

docker COMMAND 显示完整的_历史记录_08

 

 3.3. 终止容器命令(参数可用man docker-stop)。

   语法:docker stop [OPTIONS] CONTAINER [CONTAINER...]

   这个命令会先向容器发送SIGTERM信号,等待一段超时时间后(默认10s),再发送SIGKILL信号来终止容器。

   清除所有处于停止状态的容器:

docker container prune

docker COMMAND 显示完整的_历史记录_09

docker COMMAND 显示完整的_docker_10

 

3.4. 删除容器命令(参数可用man docker-rm)。

   语法:docker rm [OPTIONS] CONTAINER [CONTAINER...]

   常用参数:

    -f, --force:是否强行终止一个运行中的容器,在没有-f参数时,rm只能删除已经停止或退出状态的容器,不能删除运行中的容器;

    -l, --link:删除容器的连接,但保留容器;

    -v, --volumes:删除容器挂载的数据卷;

 

四、导入&导出容器

 4.1. 导出容器命令(参数可用man docker-export来查看),用于导出容器到tar文件,这个tar文件是容器当时的快照状态。

   语法:docker export [OPTIONS] CONTAINER

   将容器在当前目录导出为alpine.tar的文件:

docker export -o alpine2.tar 8d
或
docker export > alpine2.tar 8d

 

 4.2. 导入容器命令(参数可用man docker-import来查看),用于导入tar文件变为镜像。

   语法:docker import [OPTIONS] FILE|URL [REPOSITORY[:TAG]]

   将alpine.tar容器快照到本地镜像库,和load的区别在于:镜像存储文件会保存所有历史记录,而容器快照文件会丢弃所有历史记录和元数据信息,在导入时可以重新指定标签等元数据信息。

docker import alpine2.tar alpine:2

 

 

五、其他容器命令

 5.1. 复制文件命令(参数可用man docker-cp来查看),用于容器和主机之间复制文件。

   语法:docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH | docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH

   复制本地文件到容器里:

vi test.sh
docker cp test.sh 8d:/

   复制容器文件到本地:

docker cp 8d:/etc/passwd /root

 

 5.2. 查看容器变更命令(参数可用man docker-diff来查看)。

   语法:docker diff CONTAINER

docker COMMAND 显示完整的_docker_11

 

 5.3. 查看容器端口映射(参数可用man docker-port来查看): 

   语法:docker port CONTAINER

 

 5.4. 更新容器配置(参数可用man docker-update来查看),用于更新容器一些运行时配置: 

   语法:docker port [OPTIONS] CONTAINER [CONTAINER...]