Мы можем использовать 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