Dockerfile:mkdir和COPY命令运行正常但我看不到目录和文件

时间:2017-04-21 07:34:20

标签: docker dockerfile

我正在使用jenkins图像来创建一个docker容器。现在我只是想创建一个新目录并复制几个文件。图像构建过程运行正常,但是当我启动容器时,我看不到文件和目录。

这是我的dockerfile

FROM jenkins:2.46.1
MAINTAINER MandeepSinghGulati

USER jenkins

RUN mkdir /var/jenkins_home/aws

COPY aws/config /var/jenkins_home/aws/
COPY aws/credentials /var/jenkins_home/aws/

我发现了一个类似的问题here,但它似乎有所不同,因为我没有创建jenkins用户。它已存在于主目录/var/jenkins_home/中。不确定我做错了什么

以下是我构建图像和启动容器的方法:

➜  jenkins_test docker build -t "test" .
Sending build context to Docker daemon 5.632 kB
Step 1/6 : FROM jenkins:2.46.1
 ---> 04c1dd56a3d8
Step 2/6 : MAINTAINER MandeepSinghGulati
 ---> Using cache
 ---> 7f76c0f7fc2d
Step 3/6 : USER jenkins
 ---> Running in 5dcbf4ef9f82
 ---> 6a64edc2d2cb
Removing intermediate container 5dcbf4ef9f82
Step 4/6 : RUN mkdir /var/jenkins_home/aws
 ---> Running in 1eb86a351beb
 ---> b42587697aec
Removing intermediate container 1eb86a351beb
Step 5/6 : COPY aws/config /var/jenkins_home/aws/
 ---> a9d9a28fd777
Removing intermediate container ca4a708edc6e
Step 6/6 : COPY aws/credentials /var/jenkins_home/aws/
 ---> 9f9ee5a603a1
Removing intermediate container 592ad0031f49
Successfully built 9f9ee5a603a1
➜  jenkins_test docker run -it -v $HOME/jenkins:/var/jenkins_home -p 8080:8080 --name=test-container test

如果我在没有卷装入的情况下运行命令,我可以看到复制的文件和目录。但是对于音量安装我看不到相同的情况。即使我清空主机上的目录。这是预期的行为吗?如何将文件复制到用作卷的目录?

1 个答案:

答案 0 :(得分:1)

  1. 可以使用

    挂载现有卷

    docker container run -v MY-VOLUME:/var/jenkins_home ...

  2. 此外,documentation of COPY州:

      

    使用UID和GID为0创建所有新文件和目录。

    因此COPY不反映您的USER指令。这似乎是问题的第二部分。