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


Образ 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 нужно ставить дополнительно


образ Nginx в Docker



В контейнере можно править настройки при необходимости перезапускать процесс для того чтобы они вступили в силу.

Если docker inspect (подробнее про docker inspect и управление контейнерами) для контейнера показывает точки монтирования файлов в конейнере и за его пределами — конфигурацию можно править также в хост системе. За пределами контейнера.



Читайте про docker-compose, это инструмент позволяющий быстро и удобно разворачивать любое количество контейнеров и управлять всеми ими одной командой.



Контейнеры при этом будут взаимодействовать между собой и иметь связи, которые задаются в docker-compose файле.

Сказать спасибо