Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何在Docker中将共享目录从容器绑定到主机_Linux_Ubuntu_Docker - Fatal编程技术网

Linux 如何在Docker中将共享目录从容器绑定到主机

Linux 如何在Docker中将共享目录从容器绑定到主机,linux,ubuntu,docker,Linux,Ubuntu,Docker,我已经成功地在Ubuntu上安装了Docker。所以,下一步,我将在这个容器上安装一个新程序。需要将包含一些基本配置文件的配置文件夹从容器绑定到主机。在Docker教程中,我尝试使用该命令在容器和主机之间映射共享目录。命令是: docker run -d -P -v /path/to/shared_directory_host/:/path/to/shared_directory_container/ ubuntu:12.04 但是,由于主机中的共享目录为空,我的容器上的config文件夹中的

我已经成功地在Ubuntu上安装了Docker。所以,下一步,我将在这个容器上安装一个新程序。需要将包含一些基本配置文件的配置文件夹从容器绑定到主机。在Docker教程中,我尝试使用该命令在容器和主机之间映射共享目录。命令是:

docker run -d -P -v /path/to/shared_directory_host/:/path/to/shared_directory_container/ ubuntu:12.04
但是,由于主机中的共享目录为空,我的容器上的config文件夹中的所有配置文件都被删除。所以,我只想在开始时将所有配置文件绑定到主机上的共享目录。然后,当我将图像复制到另一台计算机上时,我只需键入上面的简单命令,然后就可以配置程序了


任何人都可以帮我解决这个问题!谢谢大家!

所以问题是您正在容器conf dir上挂载一个目录

您可以在容器中装载主机目录,然后在容器中运行一个脚本,并将配置复制到已装载的容器中(或者,如果您希望进行反映在容器中的更改,则将其符号链接)

如果你在Dockerfile里做了这样的事情

ADD config_script.sh /opt/config_script.sh
RUN chmod +x /opt/config_script.sh

CMD['/opt/config_script.sh']

确保您的配置脚本在前台运行并启动最后一个进程,然后在启动进程之前,将配置文件synlink到mounted dir中,这样做可能会达到您的目的。

config files removed?数据卷设计用于在主机和容器之间共享文件。如果主机上的共享目录为空,则会容器中应为空。请参阅: