Запуск контейнера Ubuntu в фоновом режиме с помощью docker compose - PullRequest
0 голосов
/ 17 февраля 2020

Я могу запустить контейнер docker с помощью следующей команды docker:

docker run -it  ubuntu /bin/bash

Теперь я пытаюсь сделать это с помощью docker -compose:

version: "3"
services:
  ubuntu:
    container_name: ubuntu
    image: ubuntu
    restart: on-failure
    command: "/bin/bash"

Теперь, когда я это сделаю:

 docker-compose up -d

Может видеть docker контейнер, запускающийся и выходящий сразу.

Я попытался просмотреть журналы:

docker logs b8 //b8 is container id

Но нет журналов ошибок.

Как сохранить контейнер Ubuntu в фоновом режиме, используя docker. (Я использую docker на windows, linux версии)

1 Ответ

2 голосов
/ 17 февраля 2020

Это нормально.

Вы запускаете контейнер ubuntu с bash в качестве команды (, таким образом, root process ). Суть в том, чтобы сохранить bash в живых , вам необходимо подключить его к терминалу. Вот почему, когда вы хотите получить a bash в контейнере, вы используете -ti с вашей командой:

docker container exec -ti [my_container_id] bash

Так что если вы хотите сохранить вашу Ubuntu контейнер активен и не хотите присоединять его к терминалу, вам придется использовать процесс, который будет оставаться в живых столько, сколько вы захотите.
Ниже приведен пример с sleep infinity в качестве основного процесса

version: "3"
services:
  ubuntu:
    container_name: ubuntu
    image: ubuntu
    restart: on-failure
    command: ["sleep","infinity"]

В этом примере ваш контейнер будет работать бесконечно долго.

...