web-dev-qa-db-fra.com

Quelle est la valeur par défaut de WORKDIR dans docker?

Nous pouvons utiliser WORKDIR pour définir un répertoire comme répertoire de travail dans Dockerfile, mais quelle est la valeur par défaut si nous ne définissons pas?

60
Freewind

docker workdir

dit que c'est /, donc le répertoire racine

40
ThoFin

La valeur par défaut est bien / comme indiqué ailleurs. Il convient toutefois de mentionner que vous ne lancerez presque jamais à partir d'une image de menu fixe vide (FROM scratch), de sorte que la variable WORKDIR est probablement définie par l'image de base que vous utilisez.

Par exemple, https://github.com/docker-library/Tomcat/blob/master/Dockerfile-Alpine.template a WORKDIR $CATALINA_HOME, et https: // github .com/dockerfile/ubuntu/blob/master/Dockerfile a WORKDIR /root. ( https://hub.docker.com/r/base/archlinux/~/dockerfile/ n'utilise cependant pas WORKDIR.)

Il est donc préférable de définir explicitement votre propre WORKDIR.

13
Limited Atonement

Le répertoire de travail par défaut pour l'exécution des fichiers binaires dans un conteneur est le répertoire racine (/), mais le développeur peut définir une valeur par défaut différente avec la commande Dockerfile WORKDIR. L'opérateur peut remplacer ceci avec:

-w="": Working directory inside the container

Ici: https://docs.docker.com/engine/reference/run/#workdir

6
hvardhan

Comme il n'y a pas d'utilisateurs mais une racine dans un docker juste né ou un conteneur à proprement parler. Donc, pour chaque changement, il y aura un commit pour ce conteneur comme indiqué par le gars . Par conséquent, le mot de passe correspondant à celui-ci ou, comme vous l'avez demandé, à WORKDIR est / root par défaut et chaque fois que vous exécutez un /bin/bash comme ceci:

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

sur un conteneur en cours d'exécution, il vous placera ici / dans le répertoire racine.

4