服务器 
首页 > 服务器 > 浏览文章

windows宿主机和docker容器设置挂载共享文件夹的步骤

(编辑:jimmy 日期: 2024/12/23 浏览:3 次 )

docker容器内的程序经常需要访问、调用宿主机目录中的数据,每次都要导入导出非常麻烦费力。

接下来,一步步实现将宿主机的指定文件夹挂载到docker容器中。

1. 打开Oracle VM VitualBox:

windows宿主机和docker容器设置挂载共享文件夹的步骤

2. 点击【设置】->点击左侧的【共享文件夹】

windows宿主机和docker容器设置挂载共享文件夹的步骤

windows宿主机和docker容器设置挂载共享文件夹的步骤

3. 双击默认的【c/Users \\"data"。 点击确定

windows宿主机和docker容器设置挂载共享文件夹的步骤

4. 重启virtualbox虚拟机,中间有等待时间:

windows宿主机和docker容器设置挂载共享文件夹的步骤

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容器设置挂载共享文件夹的步骤就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

上一篇:Linux下docker 容器退出bash的两种实现方法
下一篇:一条命令重启所有已停止的docker容器操作