Какой рабочий каталог по умолчанию в докере?


87

Мы можем использовать WORKDIRдля установки каталога в качестве рабочего каталога Dockerfile, но какое значение по умолчанию, если мы не устанавливаем?


2
Просто запустите однострочный Dockerfile с помощьюRUN pwd
kilgoretrout

Ответы:



32

Значение по умолчанию действительно такое, /как указано в другом месте. Тем не менее, стоит упомянуть, что вы почти никогда не будете работать с пустым образом докера ( 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явно указать свой собственный .


13

Рабочим каталогом по умолчанию для запуска двоичных файлов в контейнере является корневой каталог ( /), но разработчик может установить другой каталог с помощью команды Dockerfile WORKDIR. Оператор может изменить это с помощью:

-w="": Working directory inside the container

Здесь: https://docs.docker.com/engine/reference/run/#workdir


6

Ведь в только что родившемся докере или контейнере, собственно говоря, нет пользователей, кроме рута. Итак, для каждого изменения будет фиксироваться этот контейнер, как сказал этот парень . Следовательно, pwd этого или, как вы просили, WORKDIR / по умолчанию является root, и каждый раз, когда вы выполняете /bin/bashследующее:

$docker exec -i -t 53f784fwer54 /bin/bash

на работающем контейнере он поместит вас сюда, /в корневой каталог.


Ваш ответ не только не по теме, он просто неверен. Во-первых, вопрос: каков рабочий каталог ОБРАЗА по умолчанию, если он не задан явно в Dockerfile. Ваш ответ о том, что рабочий каталог по умолчанию для нового КОНТЕЙНЕРА /неверен и не имеет значения. Рабочий каталог нового контейнера по умолчанию совпадает с рабочим каталогом изображения по умолчанию. Например, я только что запустил docker exec -ti <my_app> /bin/bash;новый процесс bash pwdи увидел, что это рабочий каталог /app.
lmat
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.