docker容器内的程序经常需要访问、调用宿主机目录中的数据,每次都要导入导出非常麻烦费力。
接下来,一步步实现将宿主机的指定文件夹挂载到docker容器中。
1. 打开Oracle VM VitualBox:
2. 点击【设置】->点击左侧的【共享文件夹】
3. 双击默认的【c/Users \\?\c:\Users】,进行编辑,这里设置D盘下的data为挂载共享目录,名称可修改,此处设为"data"。 点击确定
4. 重启virtualbox虚拟机,中间有等待时间:
5. 创建容器,测试是否能访问共享目录
基于centos镜像创建name为centos-1的容器,并使用参数-v将D:\data目录挂载到容器的/home目录下:
C:\Users\Administrator>docker run -d -it --name centos-1 -v /data:/home centos
9b871d35e1669640dd027a64214b3f78d9faec8b29e91f23aa717d7b7b5036ed
进入容器内部:
C:\Users\Administrator>docker exec -it centos-1 /bin/bash
[root@e952aff59318 /]#
查看/home目录是否和本机的D:\data目录一致 :
[root@e952aff59318 /]# cd home [root@e952aff59318 home]# ls a.txt db log sslkey.log
一致则表示挂载成功。
补充知识:docker镜像文件导入与导出,支持批量
工作中经常需要拉取一些国外的镜像,但是网络限制等原因在公司拉取很慢,所以我习惯用亚马逊服务器拉取镜像,导出后下载到本地再导入开发环境
1. 查看镜像id
sudo docker images REPOSITORY TAG IMAGE ID CREATED SIZE quay.io/calico/node v1.0.1 c70511a49fa1 6 weeks ago 257 MB hello-world latest 48b5124b2768 2 months ago 1.84 kB quay.io/coreos/flannel v0.7.0 63cee19df39c 2 months ago 73.8 MB quay.io/calico/cni v1.5.5 ada87b3276f3 2 months ago 67.1 MB
2. 选择要打包的镜像,执行打包命令
sudo docker save -o quay.io-calico-node-1.tar quay.io/calico/node
会在当前目录下生成导出文件xxx.tar,然后将此文件下载到本地
3. 在开发环境导入上述打包的镜像
docker load -i quay.io-calico-node-1.tar
0a43edc59c00: Loading layer 27.59 MB/27.59 MB 69a5574b2581: Loading layer 3.636 MB/3.636 MB fb0933709f36: Loading layer 3.913 MB/3.913 MB 7384abd120f5: Loading layer 3.859 MB/3.859 MB e34911610de0: Loading layer 27.06 MB/27.06 MB d6ec327c8cbe: Loading layer 6.656 kB/6.656 kB Loaded image ID: sha256:ada87b3276f307a6b1b1ada15820b6c9842fd839fe5cc46ad5db8af81f7fd271
至此,可以使用本地镜像了!
4. 批量导入导出镜像工具
访问我的github获取
以上这篇windows宿主机和docker容器设置挂载共享文件夹的步骤就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持易盾网络。