目的:将容器内的文件夹挂载到容器外,以便直接编辑容器内文件的方法。
原因:本人在 debian 9.7 上使用 docker 下载 nginx 官方镜像并创建了一个 nginx 容器。创建容器时,为了方便修改 nginx 配置文件,将宿主机的一个空文件夹“/etc/nginx ”,挂载为容器中 nginx 的配置文件夹,创建容器的命令中指定了如下参数“-v /etc/nginx:/etc/nginx ”。结果容器无法启动,排查后发现宿主机 “/etc/nginx ” 配置文件夹是空的,导致 nginx 无法启动,容器退出。原因可能是“-v /etc/nginx:/etc/nginx ”参数挂载目录只是将宿主机的文件夹代替了容器内的文件夹,导致 nginx 没有了配置文件。
然后本人尝试先不挂载文件夹,创建容器 test1 使用"docker cp "命令将容器 test1 内的 nginx 配置文件夹拷贝到宿主机内“/etc/nginx ”,删除容器 test1,在重新创建容器挂载宿主机配置文件夹,容器成功运行。
有为什么方法可以将容器内的文件夹挂载到容器外吗?
原因:本人在 debian 9.7 上使用 docker 下载 nginx 官方镜像并创建了一个 nginx 容器。创建容器时,为了方便修改 nginx 配置文件,将宿主机的一个空文件夹“/etc/nginx ”,挂载为容器中 nginx 的配置文件夹,创建容器的命令中指定了如下参数“-v /etc/nginx:/etc/nginx ”。结果容器无法启动,排查后发现宿主机 “/etc/nginx ” 配置文件夹是空的,导致 nginx 无法启动,容器退出。原因可能是“-v /etc/nginx:/etc/nginx ”参数挂载目录只是将宿主机的文件夹代替了容器内的文件夹,导致 nginx 没有了配置文件。
然后本人尝试先不挂载文件夹,创建容器 test1 使用"docker cp "命令将容器 test1 内的 nginx 配置文件夹拷贝到宿主机内“/etc/nginx ”,删除容器 test1,在重新创建容器挂载宿主机配置文件夹,容器成功运行。
有为什么方法可以将容器内的文件夹挂载到容器外吗?