Qual è la WORKDIR predefinita nella finestra mobile?


87

Possiamo usare WORKDIRper impostare una directory come directory di lavoro in Dockerfile, ma qual è il valore predefinito se non lo impostiamo?


2
Esegui semplicemente un Dockerfile a riga singola conRUN pwd
kilgoretrout

Risposte:



32

L'impostazione predefinita è infatti /come affermato altrove. Vale la pena ricordare, tuttavia, che non si eseguirà quasi mai un'immagine docker vuota ( FROM scratch), quindi WORKDIRè probabile che sia impostata dall'immagine di base che si sta utilizzando.

Ad esempio, https://github.com/docker-library/tomcat/blob/master/Dockerfile-alpine.template ha WORKDIR $CATALINA_HOMEe https://github.com/dockerfile/ubuntu/blob/master/Dockerfile ha WORKDIR /root. ( https://hub.docker.com/r/base/archlinux/~/dockerfile/ non usa WORKDIRtuttavia.)

È meglio, quindi, impostare il proprio in modo WORKDIResplicito.


13

La directory di lavoro predefinita per l'esecuzione dei file binari all'interno di un contenitore è la directory root ( /), ma lo sviluppatore può impostare una directory diversa con il comando Dockerfile WORKDIR. L'operatore può sovrascriverlo con:

-w="": Working directory inside the container

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


6

Poiché non ci sono utenti ma una radice in un docker appena nato o un contenitore in senso stretto. Quindi, per ogni modifica ci sarà un commit per quel contenitore come ha detto questo ragazzo . Quindi il pwd di quello o come hai chiesto a WORKDIR è / root per impostazione predefinita e ogni volta che esegui un /bin/bashcome questo:

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

su un contenitore in esecuzione ti metterà qui /nella directory principale.


La tua risposta non è solo fuori tema, è semplicemente sbagliata. Innanzitutto, la domanda è: qual è la WORKDIR predefinita di un'IMMAGINE se non è impostata esplicitamente nel Dockerfile. La tua risposta che dice che la directory di lavoro predefinita di un nuovo CONTAINER /è errata e irrilevante. La directory di lavoro predefinita di un nuovo contenitore è la stessa della directory di lavoro predefinita dell'immagine. Ad esempio, ho appena eseguito docker exec -ti <my_app> /bin/bash;il nuovo processo bash pwde vedo che la directory di lavoro è /app.
lmat - Ripristina Monica il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.