Введение
Добро пожаловать в задание «Запуск вашего первого контейнера»! Вы уже научились запускать контейнер hello-world. Теперь давайте сделаем шаг вперед и запустим другой контейнер. В этом задании вы примените свои навыки работы с Docker, чтобы запустить образ docker/getting-started, который разворачивает небольшой веб-сервер внутри контейнера.
Запуск нового контейнера
Задачи
Ваша задача проста:
- Запустите контейнер Docker на основе образа
docker/getting-started.
Требования
Для выполнения этого задания необходимо:
- Использовать команду
docker runдля запуска контейнера. - Использовать образ
docker/getting-started(он уже был предварительно загружен для вас). - Выполнить команду в директории
~/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.



