Ответ
Для создания и запуска нового контейнера из образа используется команда docker run.
Базовый синтаксис:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
Ключевые опции (flags):
-dили--detach: Запуск контейнера в фоновом режиме.-p <host_port>:<container_port>: Проброс порта с хост-машины в контейнер.--name <name>: Присвоение контейнеру читаемого имени для удобства управления.-v <host_path>:<container_path>: Монтирование директории с хоста внутрь контейнера (volume).-it: Запуск в интерактивном режиме с подключением к терминалу контейнера.
Пример запуска веб-сервера Nginx:
# Запустить контейнер из образа nginx в фоновом режиме,
# пробросить порт 8080 хоста на порт 80 контейнера
# и дать ему имя 'my-web-server'
docker run -d -p 8080:80 --name my-web-server nginx
Важно не путать:
docker run: Создает новый контейнер и запускает его.docker start <container_name>: Запускает уже существующий, но остановленный контейнер.
Ответ 18+ 🔞
Да блядь, ну вот опять про эти ваши докеры! Слушай, а то ведь реально путают, как последние идиоты, честное слово.
Вот смотри, если тебе надо с нуля, с чистого листа, прямо из картинки эту штуку запустить — тебе docker run в руки и вперёд. Это как взять чертёж (образ) и построить по нему новый домик (контейнер), да ещё и заселить сразу.
Как это в лоб пишется:
docker run [Вот эти все твои прибамбасы] ИМЯ_ОБРАЗА [Что выполнить] [С какими аргументами]
А прибамбасы эти самые главные, чтоб не облажаться:
-d— это чтобы твой контейнер тихонько себе работал на фоне, а не висел в твоём терминале, как придурок.-p 8080:80— это, сука, порты пробросить. Чтоб то, что на твоей реальной машине на порту 8080, летело прямиком в контейнер на его порт 80. Магия, блядь!--name my_super_container— а это чтобы не тыкать в него пальцем по этим ёбаным хэшам, а называть по-человечески. Удобно же, ёпта!-v /home/user/data:/app/data— это чтобы твои файлы с компа засунуть внутрь контейнера. Или наоборот. Чтобы не потерялось ничего, если контейнер накроется медным тазом.-it— это волшебная штука, чтобы залезть внутрь контейнера и пошаманить в его терминале. Интерактивный режим, называется.
Вот тебе живой пример, чтоб вообще всё стало ясно:
# Берём образ nginx, делаем из него контейнер, называем 'my-web-server',
# запускаем в фоне (-d) и говорим: всё, что приходит на порт 8080 моего компа,
# тащи на порт 80 внутри контейнера. Всё, сервер работает!
docker run -d -p 8080:80 --name my-web-server nginx
И главное, ёпта, не перепутай, а то будет пиздец!
docker run— это как родить нового ребёнка. Всё с нуля.docker start my-web-server— это как разбудить уже существующего, но спящего ребёнка. Контейнер-то уже есть, он просто остановлен был.
Вот и вся философия, блядь. Понял теперь, где новое создать, а где старое разбудить?