docker-compose не может попасть в новый контейнер

Я использую docker-compose для создания нового образа и контейнера, но после того, как я запустил docker-compose up -d, я не могу войти в контейнер с этим: docker-compose exec -it container_name (name specified in docker-compose).

Что работает, так это то, что я могу войти в новый контейнер, если я это сделаю: docker-compose run netcore, который является моим именем службы (пожалуйста, см. мой docker-compose.yml ниже и Dockerfile, если необходимо), и я могу увидеть общий объем и т.д.

Я попробовал это в контейнере (тот, который определен с помощью «имя_контейнера»: docker run -it --rm container_name, я не могу войти в систему.

Конечно, контейнер отображается как работающий, когда я делаю: docker ps -as.

В итоге у меня есть 2 контейнера: один создается во время docker-compose up -d, в который я не могу попасть, и один создается, когда я запускаю службу под названием «netcore».

Должно быть легко, но я не могу обойти это.

Может кто-нибудь посоветовать, что мне не хватает? Спасибо.

docker-compose.yml
version: '3'
services:
  netcore:
    container_name: test_alerting_comp
    image: alerting_netcore
    build:
      context: .
    volumes:
      - "c:/FakePath/git/my_project/src:/app"
    networks:
      - net
networks:
  net:

Dockerfile
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
WORKDIR /app
docker-compose up -d
Creating network "src_net" with the default driver
Creating test_alerting_comp ... done
docker exec -it test_alerting_comp /bin/bash
Error response from daemon: Container ae23ff9075bc200a78fe8e7a21d65476b4ccf19c2b239263e54c7dd278ce37ea is not running
docker ps -as
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                         PORTS               NAMES                SIZE
ae23ff9075bc        alerting_netcore    "bash"              44 seconds ago      Exited (0) 42 seconds ago                          test_alerting_comp   0B (virtual 1.74GB)

person farp332    schedule 24.05.2019    source источник
comment
Попробуйте просто docker exec -it container_name /bin/bash   -  person Nordle    schedule 24.05.2019
comment
Привет @Nordle, я делал это раньше, я добавил полный вывод к вопросу, спасибо.   -  person farp332    schedule 24.05.2019


Ответы (1)


Если вы посмотрите на вывод docker ps -a, он говорит, что ваш контейнер закрыт с кодом состояния 0, поэтому он не запущен, и вы не можете войти в него.

Вы запускаете свой контейнер отдельно, но без подключенного терминала, поэтому контейнер останавливается сразу после запуска. Вам нужно добавить параметры tty: true и stdin_open: true в файл компоновки.

person Jack Bourne    schedule 24.05.2019
comment
К вашему сведению, передача переключателя -t в команду запуска докера автоматически назначает tty. - person Nordle; 24.05.2019
comment
Привет @Jack, Конечно, ты был, я не заметил код Exited (0). Я добавил эти две опции в свой файл docker-compose, и он работает отлично, очень признателен :-) - person farp332; 24.05.2019