将主机卷挂载到通过Dockerfile创建的容器

时间:2014-09-22 14:57:09

标签: docker

Docker的新功能,并且根据有关Dockerfile的文档,由于可移植性,不允许指定主机卷映射。这很好,但是有没有办法将主机卷(我在MAC中,比如说,我的家庭目录/Users/bsr映射到ubuntu映像的/data)到linux容器。 docker volume的{​​{3}}仅讨论docker run,但不确定如何在创建后添加卷。

documentation

2 个答案:

答案 0 :(得分:0)

Linux 上,您只需传递

即可将主机系统的目录挂载到docker容器中。
-v /path/to/host/directory:/path/to/container/directory

到docker run命令。

您也可以在文档中看到它:https://docs.docker.com/userguide/dockervolumes/#mount-a-host-directory-as-a-data-volume

如果您使用 boot2docker ,事情会更复杂。问题是boot2docker运行一点linux vm来启动docker。因此,如果您按上述方法安装卷,则将安装little linux vm的目录。

使用samba共享在boot2docker GitHub页面的README中描述了解决方法:

https://github.com/boot2docker/boot2docker#folder-sharing

答案 1 :(得分:0)

以下工作,在@sciutand的帮助下工作。

git clone https://github.com/boot2docker/boot2docker.git
 cd boot2docker/
 docker build -t my-boot2docker-img .
 docker run --rm my-boot2docker-img > boot2docker.iso
 boot2docker stop
 mv ~/.boot2docker/boot2docker.iso ~/.boot2docker/boot2docker.iso.backup
 mv boot2docker.iso ~/.boot2docker/boot2docker.iso
 VBoxManage sharedfolder add boot2docker-vm -name /Users -hostpath /Users
 boot2docker up
 docker run -d -P --name web ubuntu