Предположим, что вы нашли в Docker репозитории какой-то образ. Первый вопрос, который возникает, как создать и запустить Docker контейнер из этого образа?

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

Если вы только начинаете знакомиться с докер, рекомендую посмотреть мой курс "Основы Docker для веб-программистов."

Там есть объяснение многих базовых понятий, которые нужно знать прежде чем приступать работать с Docker.

Существует несколько способов создания контейнера. Чтобы во всем этом разобраться, нам нужно понять как происходит весь процесс.

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

Здесь нужно учитывать такой момент, что не все образы после их запуска оставляют после себя запущенный в системе контейнер. Некоторые запускаются, выполняют какую-то работу и закрываются.

Например, так происходит с образом hello-world.

Когда мы выполним команду

docker run hello-world

Эта команда автоматически скачает образ из репозитория Docker на ваш локальный компьютер (вручную скачать его можно с помощью docker pull hello-world) и запустит его в контейнере и автоматически закроет и удалит этот контейнер.

Пожалуй, команда "docker run имя_образа" является одним из самых простых способов как можно создать и запустить контейнер Docker на вашем компьютере.

В зависимости от образа, с которым мы работаем, в этой команде можно указывать дополнительные аргументы и настройки, которые позволят запустить Docker контейнер каким-то определенным способом с какими-то определенными настройками.

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

docker run --name ms -p 3307:3306 -e MYSQL_ROOT_PASSWORD=12345 mysql

Это команда скачает образ mysql на наш локальный компьютер, присвоит имя для нового создаваемого контейнера как "ms", назначит порт 3307 на нашем локальном компьютере для работы сервера баз данных, назначит пароль 12345 для пользователя root.

О том, какие аргументы мы можем передавать в команду docker run можно почитать в документации того образа, с которым вы работаете.

После выполнения этой команды вы должны увидеть созданный и запущенный контейнер, который будет работать в вашей операционной системе.

Альтернативой команде docker run является специальный инструмент для Docker, который называется Docker Compose. По сути, это отдельная утилита для докер, которая позволяет собирать контейнера сразу из множества образов и настраивать взаимодействие между ними.

Например, для того, чтобы создать и запустить контейнер Docker с образом языка программирования php и веб-сервером apache, нужно создать специальный файл, который будет называться docker-composer.yaml в нашем проекте. Подробнее об этом файле вы можете посмотреть в этом моем курсе.

И добавить в этот файл следующее содержимое:

version: "3"
 
services:
  myproject:
    image: php:7.4-apache
    volumes:
      - D:\Sites\tmp6:/var/www/html
    ports:
      - "8080:80"

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

docker-compose up --build

Это основные способы, как можно создать и запустить Docker контейнер. Конечно, здесь есть много моментов и тонкостей, с которыми нужно разбираться отдельно. Но, надеюсь, что общий смысл для вас стал понятен и изучая дополнительные материалы вы сможете разобраться в своей конкретной ситуации.