运行你的第一个容器

DockerBeginner
立即练习

介绍

欢迎来到「运行你的第一个容器」挑战!你已经学会了如何运行 hello-world 容器。现在,让我们更进一步,尝试运行一个不同的容器。在这个挑战中,你将运用所学的 Docker 技能启动 docker/getting-started 镜像,该镜像会在容器内启动一个小型 Web 服务器。

运行新容器

任务

你的任务很简单:

  1. 基于 docker/getting-started 镜像运行一个 Docker 容器。

要求

要完成此挑战,你必须:

  1. 使用 docker run 命令启动容器。
  2. 使用 docker/getting-started 镜像,该镜像已为你预先拉取。
  3. ~/project 目录下执行命令。

示例

当你成功运行容器时,Docker 会在前台启动它,因此你的终端会保持连接并显示容器日志。这些日志来自 docker/getting-started 内部的 Nginx Web 服务器。

如果你看到关于 /docker-entrypoint.d/ 目录非空的警告信息,请不必担心。

/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2024/10/29 09:26:17 [notice] 1#1: using the "epoll" event method
2024/10/29 09:26:17 [notice] 1#1: nginx/1.23.3
2024/10/29 09:26:17 [notice] 1#1: built by gcc 12.2.1 20220924 (Alpine 12.2.1_git20220924-r4)
2024/10/29 09:26:17 [notice] 1#1: OS: Linux 5.15.0-56-generic
2024/10/29 09:26:17 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2024/10/29 09:26:17 [notice] 1#1: start worker processes
2024/10/29 09:26:17 [notice] 1#1: start worker process 31
2024/10/29 09:26:17 [notice] 1#1: start worker process 32

你可以打开一个新的终端窗口,使用 docker ps 命令来验证容器是否正在运行。

docker ps
CONTAINER ID   IMAGE               COMMAND                  CREATED          STATUS          PORTS     NAMES
f3f3b3b3b3b3   docker/getting-started   "/docker-entrypoint.…"   1 minute ago   Up 1 minute   80/tcp   festive_mendel

注意: 执行 docker run docker/getting-started 后,请保持第一个终端运行。如果你按下 Ctrl+C 或关闭该终端,容器就会停止。请打开第二个终端来运行 docker ps,或者如果你希望容器在后台运行,可以使用 docker run -d docker/getting-started

总结

在这个挑战中,你通过运行一个新的容器扩展了你的 Docker 技能。你使用了 docker run 命令启动了 docker/getting-started 镜像,该镜像在容器内启动了一个 Web 服务器并将启动日志打印在终端中。你还观察到,在前台启动的容器会占用终端,直到你将其停止。本次练习巩固了启动容器的基础知识,以及如何使用 docker ps 等 Docker 命令检查容器的运行状态。

✨ 查看解决方案并练习