Docker容器操作

前面两篇文章整理了Docker创建时候的一些配置,这篇文章整理了Docker容器操作的一些常用命令

启动容器

Docker容器太轻量级了,使得我们可以随时创建和新建容器,启动容器可以分成两种:基于image新建一个容器并启动;启动在终止状态的容器

新建并启动

命令格式:docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

常用选项:

  • -it -i 打开容器的标准输入 -t 分配一个pseudo-TTY
  • -e 设置环境变量
  • -d 守护态运行容器
  • -p 指定开放端口
  • --name 为容器命名

如果使用了 -d 参数运行容器,容器会在后台运行并不会把输出的结果 (STDOUT) 打印到宿主机上面(输出结果可以用 docker logs 查看)。

Docker在后台运行的标准操作包括:

  • 检查本地是否存在指定的镜像,不存在就从公有仓库下载
  • 利用镜像创建并启动一个容器
  • 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层
  • 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
  • 从地址池配置一个 ip 地址给容器
  • 执行用户指定的应用程序
  • 执行完毕后容器被终止

启动已经终止的容器

命令格式: docker contain start

将一个已经终止运行的容器重新启动

docker container restart 命令会将一个运行态的容器终止,然后再重新启动它。

终止容器

命令格式:docker container stop

对于只启动了一个终端的容器,用户通过 exit 命令或 Ctrl+d 来退出终端时,所创建的容器立刻终止。

容器状态(包括正在运行的和终止的)可以用 docker container ls -a 命令看到。

进入容器

进入容器可以使用两个命令: docker attachdocker exec

前者不需要加参数(自动分配伪终端),但是退出以后便终止容器;后者需要加-it选项以及指定shell类似docker exec -it 69d1 bash

导入导出容器

导出容器

导出容器到本地容器

命令格式: docker export [OPTIONS] CONTAINER

实例:docker export 7691a814370e > ubuntu.tar

导入容器快照

可以使用docker import从快照文件中导入为镜像

用户既可以使用 docker load 来导入镜像存储文件到本地镜像库,也可以使用 docker import 来导入一个容器快照到本地镜像库。这两者的区别在于容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积也要大。此外,从容器快照文件导入时可以重新指定标签等元数据信息。

删除容器

删除一个处于终止状态的容器:
docker container rm
可以添加-f选项来发送SIGNKILL信号给容器关闭正在运行的容器

清理所有处于终止状态的容器
docker container prune


参考:
Docker — 从入门到实践