Wordpress 如何将docker容器中的目录装载到主机?
在docker容器中装载主机目录非常容易 但我需要另一种方式 我使用docker容器作为开发WordPress插件的开发环境。这个docker容器包含运行WordPress所需的一切(MySQL、Apache、PHP和WordPress)。我从docker容器中的主机挂载我的plugin src文件夹,以便在开发过程中测试我的插件 对于调试,如果在主机上运行的IDE对docker容器中的WordPress文件具有读取权限,这将非常有用 我找到了两种解决问题的方法,但两种方法似乎都很难解决Wordpress 如何将docker容器中的目录装载到主机?,wordpress,docker,boot2docker,Wordpress,Docker,Boot2docker,在docker容器中装载主机目录非常容易 但我需要另一种方式 我使用docker容器作为开发WordPress插件的开发环境。这个docker容器包含运行WordPress所需的一切(MySQL、Apache、PHP和WordPress)。我从docker容器中的主机挂载我的plugin src文件夹,以便在开发过程中测试我的插件 对于调试,如果在主机上运行的IDE对docker容器中的WordPress文件具有读取权限,这将非常有用 我找到了两种解决问题的方法,但两种方法似乎都很难解决 将数据
谢谢大家! 为什么不直接做:
docker run-v/usr/share/wordpress/:/usr/share/wordpress
。现在,您的本地/usr/share/wordpress/被映射到Docker容器中的/usr/share/wordpress,并且两者都有相同的文件。您也可以通过这种方式安装到容器中的其他位置。语法是host\u path:container\u path,因此如果您想将/usr/share/wordpress从主机装载到容器上的/my/new/path,您只需执行以下操作:docker run-v/usr/share/wordpress/:/my/new/path
您可以使用smb与以下人员共享文件:
docker run --rm -v $(which docker):/docker -v /var/run/docker.sock:/docker.sock svendowideit/samba <container name>
docker-run--rm-v$(哪个docker):/docker-v/var/run/docker.sock:/docker.sock svendowideit/samba
将WordPress文件复制到挂载文件夹是解决方案
我将容器中的文件从原始文件夹移动到装入的文件夹,并使用符号链接将它们链接回原始文件夹
重要的是,容器可以跟随容器中的符号链接,但主机不能。因此,仅仅使用从原始文件夹到已装入文件夹的符号链接是行不通的,因为主机无法在容器中跟踪符号链接 如果您使用卷而不是文件系统路径,则可以这样做。如果它已经不存在,它会自动为您创建
docker run -d -v usr_share_wordpress:/usr/share/wordpress --name your_container ... image
停止或删除容器后,卷将与容器中的文件一起存储在文件系统中
您可以使用busybox映像在_容器的生命周期内检查卷内容。比如:
docker run -it --rm --volumes-from your_container busybox sh
关闭您的_容器后
您仍然可以使用以下工具检查音量:
docker run -it --rm -v usr_share_wordpress:/usr/share/wordpress busybox sh
列出具有
docker卷ls
的卷 我也需要将容器中的文件公开给主机。到今天为止,这方面还有一个新的进展。提到的一个解决方法是使用绑定
,它非常简洁;它在容器启动并运行时工作:
container_root=$(docker inspect --format {{.State.Pid}} "$container_name")/root
sudo bindfs --map=root/"$USER" "$container_root/$app_folder" "$host_folder"
PS:我不确定这是否有利于生产,但它应该在开发场景中工作 本地/usr/share/wordpress将替换容器中/usr/share/wordpress的内容。本地文件夹为空,只有容器文件夹包含WordPress文件。因此,容器中的WordPress文件将替换为空的本地文件夹。我需要另一种方法。@KaiHofstetter您可以将原始wordpress文件保存在
/usr/share/wordpress
之外的其他位置,并在容器启动时将其复制到那里(通常由entrypoint脚本完成)。通过这种方式,您可以将文件传播回主机映射目录。我们是否可以转到文件系统级别,即/var/lib/docker
,创建一个从主机文件夹到容器文件夹的符号链接?只要您能找到它就行了?