无法运行docker -v工作

时间:2017-06-12 10:06:48

标签: docker

我希望主机上的/ home / moodle文件夹与容器中的/ var / www / html文件夹相同。

我尝试运行此命令:

sudo docker run -d -P --name moodle --link DB:DB -p 8080:80 -v /home/moodle:/var/www/html jhardison/moodle

它将此添加到docker inspect:

    "Mounts": [
        {
            "Type": "bind",
            "Source": "/home/moodle",
            "Destination": "/var/www/html",
            "Mode": "",
            "RW": true,
            "Propagation": ""
        },

但是/ home / moodle文件夹是空的,与容器中的/ var / www / html不同

2 个答案:

答案 0 :(得分:0)

如果在先前退出的映像目录中挂载主机目录,则不会删除映像目录的内容,但主机目录的内容也将位于容器目录中。

请查看Docker文档以获取更多信息:https://docs.docker.com/engine/tutorials/dockervolumes/#mount-a-host-directory-as-a-data-volume

答案 1 :(得分:0)

这是docker documentation

的摘录
  

docker run -d -P --name web -v /src/webapp:/webapp training/webapp python app.py

     

此命令将主机目录/ src / webapp安装到   容器at / webapp。如果路径/ webapp已经存在于   容器的图像,/ src / webapp挂载覆盖但不删除   预先存在的内容。删除安装后,内容就是   再次访问。这符合预期的行为   mount命令。

挂载空文件夹将覆盖容器在该文件夹中的所有内容。要从容器内共享数据,您可以将文件夹挂载到某个空目录,然后让应用程序将数据复制到该目录中,或者从容器中运行bash命令,执行与in another thread所述相同的操作:

docker exec -it mycontainer /bin/bash

或者您可以使用another stackoverflow thread中描述的泊坞窗副本:

docker cp <containerId>:/file/path/within/container /host/path/target