使用 Docker 容器

上一节中,我们学会了如何从Docker Hub官方仓库中获取镜像。同时,我们已经知道,Docker镜像是静态的,要使用它,就是以镜像为模板,创建并运行Docker容器应用。

本节我们将详细介绍Docker容器的使用,在了解容器的各项操作之前,我们先来回顾一下,Docker 容器的生命周期里分为五种状态,其分别代表着:

  • Created:容器已经被创建,容器所需的相关资源已经准备就绪,但容器中的程序还未处于运行状态;
  • Running:容器正在运行,也就是容器中的应用正在运行;
  • Paused:容器已暂停,表示容器中的所有程序都处于暂停 状态;
  • Stopped:容器处于停止状态,占用的资源和沙盒环境都依然存在,只是容器中的应用程序均已停止;
  • Deleted:容器已删除,相关占用的资源及存储在 Docker 中的管理信息也都已释放和移除。

容器的操作使容器在不同状态间转换。下面我们围绕着容器生命周期,介绍Docker对容器的操作。

1. 容器操作

1.1 创建容器

当我们选择好镜像以后,就可以通过 docker create 这个命令来创建容器了。

# 在创建容器时,我们可以通过 `--name` 这个选项来配置容器名。
docker create --name busybox busybox

通过 docker create 创建的容器,是处于 Created 状态的,其内部的应用程序还没有启动。

1.2 启动容器

通过 docker start 命令来启动它。

docker start busybox

当容器启动后,其中的应用就会运行起来,容器的状态就会是 Running。

docker run 这个命令将 docker createdocker start 合并,在创建完成之后会直接启动起来。

docker run --name busybox -d -i busybox

-d 参数, Docker 在启动后将程序与控制台分离,使其进入后台运行。
-i ( --interactive ) 表示保持终端输入流

1.3 管理容器

容器创建和启动后,除了关注应用程序是否功能正常外,我们也会关注容器的状态等内容。

通过 docker ps 这个命令,我们可以罗列出 Docker 中的容器。

docker ps

默认情况下,docker ps 列出的容器是处于运行中的容器,如果要列出所有状态的容器,需要增加 -a 选项。

docker ps -a

1.4 停止和删除容器

使用 docker stop 命令停止正在运行的容器。

docker stop busybox

容器停止后,通过 docker start 命令将这个容器再次启动。

当我们完全删除容器时,可以通过 docker rm 命令将容器进行删除。

docker rm busybox

正在运行中的容器默认情况下是不能被删除的,我们可以通过增加 -f 选项 强制停止并删除容器。

Tips : 当我们短时间内不需要使用容器时,就应该删除它。

1.5 进入容器

Docker 提供了一个命令 docker exec ,它在正在运行的容器中运行指定命令,输入以下命令连接到容器内的终端:

docker exec -it busybox sh

docker exec 进入容器的时候,两个选项不可或缺,即 -i-t ( 合并为 -it )。

  • -t ( --tty ) 表示启用一个伪终端,没有它无法看到 bash 内部的执行结果。

1.6 查看容器日志

Docker 提供 docker logs 命令,导出容器的日志信息:

docker logs busybox

1.7 查看容器的配置信息

Docker 提供了 docker inspect 命令,用来提供详细的容器信息(配置信息等) :

docker inspect busybox

2. 小结

这个小节我们主要讲解了如何创建、启动、管理和进入容器,和如何查看容器信息。
本节的内容虽然看似简单,但请大家一定要熟练掌握这几个命令,它们是 Docker 后面学习过程中最常用的指令。