В 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 теперь работает в контейнере
Стоит иметь в виду, что практически никаких утилит установлено не будет и mcedit или vi нужно ставить дополнительно
Читайте про docker-compose, это инструмент позволяющий быстро и удобно разворачивать любое количество контейнеров и управлять всеми ими одной командой.
Контейнеры при этом будут взаимодействовать между собой и иметь связи, которые задаются в docker-compose файле.