Образ Nginx в Docker — один из самых популярных. Он позволяет быстро развернуть веб-сервер, что нужно как в production среде, так и в процессе разработки веб приложения.
Docker Nginx image, запуск Nginx в контейнере
Контейнер с именем docker-nginx из образа Nginx запускается так:
docker run --name docker-nginx -d -p 80:80 nginx
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
f2aa67a397c4: Pull complete
1cd0975d4f45: Pull complete
72fd2d3be09a: Pull complete
Digest: sha256:3e2ffcf0edca2a4e9b24ca442d227baea7b7f0e33ad654ef1eb806fbd9bedcf0
Status: Downloaded newer image for nginx:latest
Если данный Docker образ используется на сервере впервые процесс создания контейнера может занять какое-то время поскольку образ будет скачиваться с DockerHub. Это происходит автоматически при отсутствии нужного образа локально.
-p определяет порт, открываемый наружу из контейнера в следующем порядке:
порт локальной машины:порт внутри контейнера
В самом простом случае это 80:80
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
34b0b45ca940 nginx «nginx -g 'daemon of…» About an hour ago Exited (0) About a minute ago docker-nginx
docker start 34b0b45ca940
34b0b45ca940
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
34b0b45ca940 nginx «nginx -g 'daemon of…» About an hour ago Up 2 seconds 0.0.0.0:80->80/tcp docker-nginx
Внутрь контейнера можно зайти указав путь к оболочке (/bin/bash)
docker exec -it 34b0b45ca940 /bin/bash
root@34b0b45ca940:/#
Имя хоста изменилось, что говорит о том, что пользователь root теперь работает в контейнере
Стоит иметь в виду, что практически никаких утилит установлено не будет и mcedit или vi нужно ставить дополнительно
В контейнере можно править настройки при необходимости перезапускать процесс для того чтобы они вступили в силу.
Если docker inspect (подробнее про docker inspect и управление контейнерами) для контейнера показывает точки монтирования файлов в конейнере и за его пределами — конфигурацию можно править также в хост системе. За пределами контейнера.
Читайте про docker-compose, это инструмент позволяющий быстро и удобно разворачивать любое количество контейнеров и управлять всеми ими одной командой.
Контейнеры при этом будут взаимодействовать между собой и иметь связи, которые задаются в docker-compose файле.