使用 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 create
和 docker 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 后面学习过程中最常用的指令。