«Запуск контейнера Docker» возвращает больше не сгенерированный идентификатор контейнера, а его журналы

#docker

Вопрос:

Я новичок, провожу эксперименты с докером.

Однажды, когда я бежал

 docker container run --publish 80:80 nginx
 

Я только что получил сгенерированный идентификатор контейнера.

Затем я сделал разные вещи, и теперь, когда я выполняю одну и ту же команду, я получаю

 $ docker container run --publish 80:80 nginx
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
 

Почему? Это потому, что я сейчас выполняю ту же команду в другом каталоге, в котором есть файл Dockerfile?

Вот содержимое файла Dockerfile:

 # this shows how we can extend/change an existing official image from Docker Hub

FROM nginx:latest
# highly recommend you always pin versions for anything beyond dev/learn

WORKDIR /usr/share/nginx/html
# change working directory to root of nginx webhost
# using WORKDIR is preferred to using 'RUN cd /some/path'

COPY index.html index.html

# I don't have to specify EXPOSE or CMD because they're in my FROM
 

Ответ №1:

Это зависит от того, как вы запускаете контейнер docker. Используемая вами команда запустит его как процесс переднего плана и выведет стандартный вывод контейнера на консоль (по умолчанию Docker).

Если вы хотите видеть только идентификатор и запускать его в фоновом режиме, вам необходимо добавить опцию отсоединения:

 docker container run --detach --publish 80:80 nginx
docker run -d -p 80:80 nginx
 

Видеть https://docs.docker.com/engine/reference/run/#detached-vs-foreground и https://docs.docker.com/engine/reference/commandline/container_run/