Перейти к основному содержимому

Разница между запуском и запуском контейнера Docker

· 2 мин. чтения

1. Обзор

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

2. Запустите контейнер

Команда запуска Docker представляет собой комбинацию команд создания и запуска . Он создает контейнер поверх своего конкретного образа и затем запускает его . Например, давайте запустим контейнер Postgres :

docker run --name postgres_example -p 5432:5432 -v /volume:/var/lib/postgresql/data -e POSTGRES_PASSWORD=my_password -d postgres

Давайте посмотрим на наши запущенные контейнеры с помощью docker ps :

CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS         PORTS                                       NAMES
52b7c79bfaa8 postgres "docker-entrypoint.s…" 22 seconds ago Up 20 seconds 0.0.0.0:5432->5432/tcp, :::5432->5432/tcp postgres_example

Если мы используем журналы докеров , мы также можем получить дополнительную информацию о запущенном контейнере, например:

starting PostgreSQL 13.2
listening on IPv4 address "0.0.0.0", port 5432
listening on IPv6 address "::", port 5432
listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
database system is ready to accept connections

3. Запустите контейнер

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

Чтобы продемонстрировать это, давайте вручную остановим контейнер, который мы создали ранее:

docker stop 52b7c79bfaa8

В этом случае в списке запущенных контейнеров будет показан запущенный контейнер:

CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS                    PORTS                                       NAMES
52b7c79bfaa8 postgres "docker-entrypoint.s…" 2 minutes ago Exited (0) 2 seconds ago 0.0.0.0:5432->5432/tcp, :::5432->5432/tcp postgres_example

Давайте посмотрим также на журналы:

received fast shutdown request
aborting any active transactions
shutting down
database system is shut down

Если контейнер не работает, мы можем запустить его снова, используя docker start :

docker start 52b7c79bfaa8

Если при запуске контейнера не возникнет ошибок, мы вернемся к статусу работающего контейнера. Docker также предоставляет команду перезапуска docker , которая объединяет остановку и запуск в одну команду.

4. Вывод

В этом руководстве мы кратко обсудили команды запуска и запуска в Docker.

Мы видели пример запуска контейнера с помощью docker run . Если контейнер останавливается, мы можем снова запустить его с помощью docker start .