Docker没有';无法在生成期间创建目录

Docker没有';无法在生成期间创建目录,docker,Docker,第一次用Docker做实验。在我的Dockerfile中有这些步骤来创建目录,但是当我运行容器时,目录不在那里 FROM ubuntu MAINTAINER AfterWorkGuinness RUN apt-get update RUN apt-get install -y openssh-server RUN mkdir /root/.ssh RUN cd /root/.ssh RUN ssh-keygen -t rsa -N "" -f id_rsa VOLUME /root EXPOSE

第一次用Docker做实验。在我的Dockerfile中有这些步骤来创建目录,但是当我运行容器时,目录不在那里

FROM ubuntu
MAINTAINER AfterWorkGuinness
RUN apt-get update
RUN apt-get install -y openssh-server
RUN mkdir /root/.ssh
RUN cd /root/.ssh
RUN ssh-keygen -t rsa -N "" -f id_rsa
VOLUME /root
EXPOSE 22
构建映像:

docker build -t ubuntu-ssh --no-cache .
docker run -it -v c:/users/awg/dev/tmp/home:/root ubuntu-ssh

root@39eec8fa51ad:/# cd ~/.ssh
bash: cd: /root/.ssh: No such file or directory

root@39eec8fa51ad:/# cd /root/.ssh
bash: cd: /root/.ssh: No such file or directory
运行容器时测试目录:

docker build -t ubuntu-ssh --no-cache .
docker run -it -v c:/users/awg/dev/tmp/home:/root ubuntu-ssh

root@39eec8fa51ad:/# cd ~/.ssh
bash: cd: /root/.ssh: No such file or directory

root@39eec8fa51ad:/# cd /root/.ssh
bash: cd: /root/.ssh: No such file or directory
使用命名的而不是


在命名卷中,文件仍将在容器重新启动时保持不变,但目录中的内容将保持不变。Docker根据使用的驱动程序选择存储数据的位置
local
是默认值,数据默认值为Docker数据目录中的
volume
目录,通常是
/var/lib/Docker/volumes

如果您在那里装载
/users/awg/dev/tmp/home
,您希望
/root
的内容是什么?我希望是dir“.ssh”作为构建docker映像的结果创建并填充ssh密钥。@AfterWorkGuinness-jwodder试图说正在创建目录;但是您正在使用
docker run
命令安装它。您正在用
c:/users/awg/dev/tmp/home
Ah替换
/root
中的所有内容。我试图让那些文件在容器关闭后保留。我该怎么做?