Команда docker run використовується для запуску контейнерів Docker із образів (image).
У цій статті я покажу вам, як запустити контейнер із образу на прикладі останнього офіційного офіційного образу Docker Ubuntu.
Я покажу, як встановити apache2 всередині контейнера з Ubuntu і як зберегти цей контейнер як новий образ.
І наприкінці я покажу, як запускати контейнери з цього нового зображення в інтерактивному та фоновому режимах.
Не плутайте:
Сам образ 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 run -it ubuntu /bin/bash
root@e485d06f2182:/#
Коли ви запускаєте docker run IMAGE, механізм Docker приймає IMAGE, додає верхній рівень для запису та ініціалізує різні параметри (мережеві порти, назву контейнера, ідентифікатор і обмеження ресурсів).
Встановіть веб-сервер 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 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».
Коментарі