Какая основная команда используется для запуска нового Docker-контейнера?

Ответ

Для создания и запуска нового контейнера из образа используется команда 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 — это как разбудить уже существующего, но спящего ребёнка. Контейнер-то уже есть, он просто остановлен был.

Вот и вся философия, блядь. Понял теперь, где новое создать, а где старое разбудить?