Docker挂载和空卷
Docker挂载和空卷
我在Ubuntu服务器16.04上运行Docker,我正在运行一个容器,尝试挂载我的Let's Encrypt证书的卷。
我执行的命令是:
docker run .... -v /etc/letsencrypt/live/mysite:/certs ....
在mysite文件夹中,我有我的.pem文件,但是在容器内部,我发现certs文件夹被创建了,但是是空的!我不知道为什么它没有挂载mysite文件夹中的文件…
最初,mysite文件夹属于root用户,但我用'chown'命令将其所有权更改为当前用户。我也使用'sudo'来运行docker run,但它仍然没有复制我的文件夹。
我不知道该怎么办:(
Docker mounts and empty volume问题的出现的原因是证书文件无法正确地挂载到容器中。解决方法是使用mount flag或者将证书文件移动到一个命名的volume中。
对于使用mount flag的解决方法,可以在运行Docker容器时使用--mount选项来指定挂载路径和类型。例如,使用以下命令:
docker run -it \ --mount src=/etc/letsencrypt/live/mysite,target=/certs,type=bind ubuntu
另一种解决方法是将证书文件移动到一个命名的volume中。可以按照以下步骤操作:
1. 查找用于挂载的目录,该目录在"Mountpoint"下给出。可以参考Docker的Volumes文档(Volumes docs)和Bind Mount文档(Bind Mount docs)了解更多信息。
2. 将证书文件移动到该目录中。
3. 使用该命名的volume运行Docker容器。
根据之前用户的反馈,这些解决方法应该能够解决问题。用户已经尝试了使用bind mount的方法,并且认为这应该能够解决问题。