Мы можем использовать WORKDIR
для установки каталога в качестве рабочего каталога Dockerfile
, но какое значение по умолчанию, если мы не устанавливаем?
Ответы:
говорит, что это /
так, поэтому корневой каталог
Значение по умолчанию действительно такое, /
как указано в другом месте. Тем не менее, стоит упомянуть, что вы почти никогда не будете работать с пустым образом докера ( FROM scratch
), поэтому, WORKDIR
скорее всего, он устанавливается базовым образом, который вы используете.
Например, https://github.com/docker-library/tomcat/blob/master/Dockerfile-alpine.template есть WORKDIR $CATALINA_HOME
, а https://github.com/dockerfile/ubuntu/blob/master/Dockerfile есть WORKDIR /root
. ( https://hub.docker.com/r/base/archlinux/~/dockerfile/ , WORKDIR
однако, не используется .)
Поэтому лучше всего WORKDIR
явно указать свой собственный .
Рабочим каталогом по умолчанию для запуска двоичных файлов в контейнере является корневой каталог ( /
), но разработчик может установить другой каталог с помощью команды Dockerfile WORKDIR. Оператор может изменить это с помощью:
-w="": Working directory inside the container
Здесь: https://docs.docker.com/engine/reference/run/#workdir
Ведь в только что родившемся докере или контейнере, собственно говоря, нет пользователей, кроме рута. Итак, для каждого изменения будет фиксироваться этот контейнер, как сказал этот парень . Следовательно, pwd этого или, как вы просили, WORKDIR /
по умолчанию является root, и каждый раз, когда вы выполняете /bin/bash
следующее:
$docker exec -i -t 53f784fwer54 /bin/bash
на работающем контейнере он поместит вас сюда, /
в корневой каталог.
/
неверен и не имеет значения. Рабочий каталог нового контейнера по умолчанию совпадает с рабочим каталогом изображения по умолчанию. Например, я только что запустил docker exec -ti <my_app> /bin/bash;
новый процесс bash pwd
и увидел, что это рабочий каталог /app
.
RUN pwd