Запуск вашего первого контейнера

DockerBeginner
Практиковаться сейчас

Введение

Добро пожаловать в задание «Запуск вашего первого контейнера»! Вы уже научились запускать контейнер hello-world. Теперь давайте сделаем шаг вперед и запустим другой контейнер. В этом задании вы примените свои навыки работы с Docker, чтобы запустить образ docker/getting-started, который разворачивает небольшой веб-сервер внутри контейнера.

Запуск нового контейнера

Задачи

Ваша задача проста:

  1. Запустите контейнер Docker на основе образа docker/getting-started.

Требования

Для выполнения этого задания необходимо:

  1. Использовать команду docker run для запуска контейнера.
  2. Использовать образ docker/getting-started (он уже был предварительно загружен для вас).
  3. Выполнить команду в директории ~/project.

Пример

Когда вы успешно запустите контейнер, Docker начнет его выполнение в интерактивном режиме (foreground), поэтому ваш терминал будет привязан к логам контейнера. Эти логи поступают от веб-сервера Nginx, работающего внутри docker/getting-started.

Не беспокойтесь, если увидите предупреждение о том, что директория /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, который разворачивает веб-сервер внутри контейнера и выводит логи запуска в терминал. Вы также увидели, что контейнер, запущенный в интерактивном режиме, удерживает терминал до тех пор, пока вы его не остановите. Это упражнение закрепляет основы запуска контейнеров и проверки их состояния с помощью команд Docker, таких как docker ps.

✨ Проверить решение и практиковаться