docker windows10 共享目录挂载失败的解决方案

起因

在执行docker脚本的时候,出现不能创建容器的错误。

如下所示:

Cannot create container for service xxx: b'Drive has not been shared'

上了Stack Overflow,查看解决方法是通过Setting->Shared Drives,接着勾选自己想要用于docker挂载镜像的磁盘地址。

但是,无论你怎么勾选,Rest credentials,Apply,甚至Reset,出厂化都无济于事。每一次输入用户密码后,docker 都自动把我的选项刷没了。

此时你需要分析一下有几种原因:

1、是不是本地安全策略中本地策略->安全选项->网络访问:本地账户的共享与安全模型,中安全设置没有放开权限,这里需要选择经典模式。

2、是不是防火墙的问题,445端口没有被用于映射

3、会不会是Hyper-V被禁用了

这边主要是第一种情况导致的drive has not been shared,设置好之后,Setting->Shared Drives->想要挂载的盘,reset,运行完事。

补充:win10 docker 使用run -v 时,虚拟机无法显示宿主机挂载的目录

这几天在学习docker,今天博主遇到的问题是这样的:

docker run --name centos7 -it -v D:\docker-data\exchange\:/mnt centos:7

使用如上方法启动一个容器,在虚拟机的/mnt目录下怎么也无法加载D:\docker-data\exchange\下面的文件。但是启动容器的时候正常启动,没有报任何错误,折腾了好一阵。但是昨天我用这个方法是能正常挂载,能正常读取到宿主机的文件的。

后来才发现,是自己昨天最后改了自己电脑的密码,要重新验证才可以正常读取。(不知道是不是docker的一个坑,明明之前验证过的密码已经变动了,执行上面的命令也不要求重新认证,也不报错,坑)

使用如下方法先清除验证,打开docker的settings窗口,在如下页面点击reset credentials,再勾选上要挂载的目录所在磁盘,重新输入密码(这里不知道为何非要密码,我的电脑一直都不设置密码,为了用docker特设置了一个)

然后就可以成功挂载目录到虚拟机了。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • 解决docker run中使用 ./ 相对路径挂载文件或目录失败的问题

    docker-compose.yml文件中允许使用'./'相对路径 version: '3' ... volumes: - ./init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro - ./mongo-volume:/data/db ... 会将当前路径下的init-mongo.js文件挂载到容器中的/docker-entrypoint-initdb.d/init-mongo.js,并且设置为只读方式; 会将当前路径下的mongo-

  • 解决docker挂载的目录无法读写问题

    使用下面的命令可以创建一个容器并且把本地的/home/dock/Downloads目录挂载到容器中的/usr/Downloads中 [root@docker ~]# docker run -it -v /home/dock/Downloads:/usr/Downloads ubuntu /bin/bash 在Centos上创建完后,会出现如下问题 root@637fe9ea94f0:/usr/Downloads# ls ls: cannot open directory '.': Permiss

  • Docker容器中挂载NFS共享目录的实现

    之前在https://www.jb51.net/article/205922.htm 介绍过使用Dockerfile构建ubuntu 16.04镜像,并在容器中编译执行Messy_Test项目.这里介绍下如何在容器中挂载NFS服务器上的共享目录. Dockerfile内容如下: FROM ubuntu:16.04 LABEL maintainer="FengBingchun fengbingchun@163.com" \ version="1.0" \ descri

  • docker 启动elasticsearch镜像,挂载目录后报错的解决

    从docker hub下载了一个es的镜像,版本为6.4.2,详细信息如下: 比较重要的就是这两条,第一个是工作目录,挂载目录也需要和这里对应:第二个是启动命令,这里是指定了一个预先写好的启动脚本.所以我启动了一个空容器去查看了下容器内的情况: 容器内部目录结构如上图,data是用来存放数据,logs用来存放日志. 接着查看下启动脚本 /usr/local/bin/docker-entrypoint.sh 前半部分我也是看的一知半解,不过真正和挂载目录相关的是最后这部分,这里处理了挂载目录后的操

  • docker 查看容器的挂载目录操作

    只显示Docker容器挂载目录信息 docker inspect --format "{{.Config.Volumes}}" 369a1376f78c 显示Docker容器和物理主机挂载目录信息 方法一 docker inspect -f "{{.Mounts}}" 369a1376f78c 方法二 docker inspect 369a1376f78c | grep Mounts -A 50 补充:Docker 显示某个容器所有的挂载目录 docker insp

  • docker挂载本地目录和数据卷容器操作

    1.docker挂载本地目录 docker可以支持把一个宿主机上的目录挂载到镜像里. 交互模式运行 docker run -it -v /home/dock/Downloads:/usr/Downloads ubuntu64 /bin/bash 后台运行 docker run -d -v /home/dock/Downloads:/usr/Downloads --name ubuntu1 ubuntu64 通过-v参数,冒号前为宿主机目录,必须为绝对路径,冒号后为镜像内挂载的路径. 现在镜像内就

  • docker-修改容器挂载目录的3种方法小结

    方式一:修改配置文件(需停止docker服务) 1.停止docker服务 systemctl stop docker.service(关键,修改之前必须停止docker服务) 2.vim /var/lib/docker/containers/container-ID/config.v2.json 修改配置文件中的目录位置,然后保存退出 "MountPoints":{"/home":{"Source":"/docker",&qu

  • docker windows10 共享目录挂载失败的解决方案

    起因 在执行docker脚本的时候,出现不能创建容器的错误. 如下所示: Cannot create container for service xxx: b'Drive has not been shared' 上了Stack Overflow,查看解决方法是通过Setting->Shared Drives,接着勾选自己想要用于docker挂载镜像的磁盘地址. 但是,无论你怎么勾选,Rest credentials,Apply,甚至Reset,出厂化都无济于事.每一次输入用户密码后,docke

  • 使用Docker将容器目录挂载到主机上的实现方法

    目录 一.基本介绍 二.将容器目录挂载到主机 一.基本介绍 这里我们主要介绍 Docker 里的一个命令,叫做 --mount,其本质上来说和 --volume 命令并没有太大区别,因为这两个命令都是用来给容器提供一个挂载目录.唯一的区别便是,容器的挂载类型不同,那么效果也会有所不同. 容器的挂载类型: bind:将宿主机的指定目录挂载到容器的指定目录,以覆盖的形式挂载(这也就意味着,容器指定目录下的内容也会随着消失) volume:在宿主机的 Docker 存储目录下创建一个目录,并挂载到容器

  • 在Virtualbox下为Ubuntu16.04开机自动挂载共享目录的最佳方法

    玩虚拟机的一般都会给虚拟机设置共享目录,便于操作和使用.比如我在64位win10系统下,用Virtualbox安装了Ubuntu 16.04虚拟机,那么我一般都会将win10系统下的一些目录映射到Ubuntu里面去.以前,我都是通过将共享目录的信息直接写入到/etc/fstab文件中来实现自动挂载(关于这一点如何操作,此处不做详解,大家自行百度一下就知道了,很简单).但是,用久了发现几个问题: 第一,我需要挂载到虚拟机的目录位置有好几个(比如有一个临时文件的存放目录tmp,有一个工作项目代码区的

  • docker基础知识之挂载本地目录的方法

    Docker可以支持把一个宿主机上的目录挂载到镜像里. 复制代码 代码如下: docker run -it -v /home/dock/Downloads:/usr/Downloads ubuntu64 /bin/bash 通过-v参数,冒号前为宿主机目录,必须为绝对路径,冒号后为镜像内挂载的路径. 现在镜像内就可以共享宿主机里的文件了. 默认挂载的路径权限为读写.如果指定为只读可以用:ro 复制代码 代码如下: docker run -it -v /home/dock/Downloads:/u

  • 详解Docker目录挂载的方法总结

    Docker容器启动的时候,如果要挂载宿主机的一个目录,可以用-v参数指定. 譬如我要启动一个centos容器,宿主机的/test目录挂载到容器的/soft目录,可通过以下方式指定: # docker run -it -v /test:/soft centos /bin/bash 这样在容器启动后,容器内会自动创建/soft的目录.通过这种方式,我们可以明确一点,即-v参数中,冒号":"前面的目录是宿主机目录,后面的目录是容器内目录. 貌似简单,其实不然,下面我们来验证一下: 一.容器

  • 详解Centos中mount命令挂载windows7共享目录

    1)  在ip:10.4.35.77的windows机器上新建用户.这里新建用户名:myshare,密码:myshare123. 2) 选择 [计算机]右键 选择[管理],本地用户和组,用户 =>右键,新建用户. 3)查看myshare的域.依次:控制面板\所有控制面板项\用户帐户.管理用户.可以看到域为:JSZX-YH-59. 4)新建共享目录.在F盘新建mytest目录(F:\mytest).选中mytest.点击右键.选择属性.点击共享. 5)查找用户. 6)点击位置选着:JSZX-YH-

  • linux mount挂载共享目录详解

    挂载windows共享目录或FTP: 方式一:包含密码 复制代码 代码如下: sudo mount //192.168.10.22/FTPServer /windows -o username=user,password=abcdefg -t cifs 方式二:密码单独输入 sudo mount //192.168.10.22/FTPServer /windows -o username=user -t cifs password:abcdefg 卸载: umount /FTPServer 挂载

  • docker部署nginx并且挂载文件夹和文件操作

    这段时间在研究docker,在部署nginx时遇到了坑,最主要的问题是在挂载文件和文件夹的时候不知道怎么挂载,经过反复实验以及查看网上的教程,先总结如下: 1首先pull下载nginx镜像包 docker pull nginx 2(关键)查看nginx镜像里面配置文件.日志等文件的具体位置,只有找到镜像配置文件的路径,后面挂载文件和文件夹才能覆盖这些路径 以终端的方式打开镜像容器 [root@docker2 nginx]# docker run -i -t nginx /bin/bash roo

随机推荐