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

В Docker Nginx image — один из самых популярных. Чаще всего он применяется для демонстрции принципов работы с Docker потому, что результат в виде развернутого веб-сервера можно увидеть сразу.

 

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 Nginx image используется впервые процесс создания контейнера может занять какое-то время поскольку образ будет скачиваться с 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 Nginx image
 

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

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