Команда docker run
служит для запуска Docker-контейнеров из образов.
В этой статье я расскажу, как запускать контейнер из образа на примере последнего официального базового Docker-образа Ubuntu.
Я покажу, как установить apache2
внутри контейнера с Ubuntu и как сохранить этот контейнер в качестве нового образа.
И в конце я покажу, как из этого нового образа в интерактивном и фоновом режимах запускать контейнеры.
Дельный Совет: Образ vs. Контейнер … В чем разница? Читать Далее →
Запуск Контейнера из Образа в Docker
Не Путайте: Сам по себе Docker-образ невозможно «запускать». Команда docker run
берет Docker-образ в качестве темплейта и создает из него контейнер, который и запускается.
Найдите необходимый образ на Docker Hub:
$ docker search ubuntu NAME DESCRIPTION STARS OFFICIAL AUTOMATED ubuntu Ubuntu is a Debian... 6759 [OK] dorowu/ubuntu-desktop-lxde-vnc Ubuntu with openss... 141 [OK] rastasheep/ubuntu-sshd Dockerized SSH ser... 114 [OK] ansible/ubuntu14.04-ansible Ubuntu 14.04 LTS w... 88 [OK] ubuntu-upstart Upstart is an even... 80 [OK]
Скачайте Docker-образ из репозитория с помощью команды docker pull
:
$ docker pull ubuntuЗапустите контейнер из Docker-образа:
$ docker run -it ubuntu /bin/bash root@e485d06f2182:/#
Когда вы выполняете docker run ОБРАЗ
, движок Docker берет ОБРАЗ
, добавляет доступный для записи верхний слой и инициализирует различные параметры (сетевые порты, имя контейнера, идентификатор и лимиты ресурсов).
Установите веб-сервер apache2
внутри контейнера, а затем выйдите из него:
root@e485d06f2182:/# apt update root@e485d06f2182:/# apt install apache2 -y root@e485d06f2182:/# exit
Из остановленного контейнера, в котором вы установили apache2
, создайте новый образ и назовите его apache_snapshot
:
$ docker commit e485d06f2182 apache_snapshot
Чтобы просмотреть все образы на Docker-хосте, выполните:
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE apache_snapshot latest 13037686eac3 22 seconds ago 249MB ubuntu latest 00fd29ccc6f1 3 weeks ago 111MB
Дельный Совет: Как просмотреть ( запущенные | остановленные | все ) Docker-контейнеры! Читать Далее →
Теперь из нового Docker-образа вы можете запускать контейнеры в интерактивном режиме:
$ docker run -it apache_snapshot /bin/bash
Либо вы можете из этого Docker-образа запустить контейнер в фоновом режиме с портом :80
внутри Docker-контейнера проброшенным на порт :8080
Docker-хоста:
$ docker run -d -p 8080:80 apache_snapshot /usr/sbin/apache2ctl -D FOREGROUND
В этом случае, чтобы убедиться что apache2
внутри контейнера запущен, просто откройте http://localhost:8080/ и вы увидите стартовую страницу: «Apache2 Ubuntu Default Page».