windows使用docker toolbox,搭建前端开发环境时,在共享目录使用npm安装前端依赖时,发现报错,无法使用符号连接。

这里有一个帖子专门讨论这个问题,感兴趣可以看一下:

https://askubuntu.com/questio...

我试过了上面所有的法子,发现只有这条有用:

$ npm i --no-bin-links

但是这种解决方式会带来另外一个问题:npm run dev 这些命令将无法使用,因为这个共享目录不支持符号连接,而‘npm run dev’是需要软连接的。

解决方法是

使用vagrant管理virtualBox,然后开一个centos虚拟机,centos里使用docker就可以了。这样共享目录由vagrant配置,默认是“/vagrant”,也就是Vagrantfile所在目录。使用vagrant共享出来的目录是支持符号连接的,问题解决了。

在vagrant里添加配置,允许符号链接

vb.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/vagrant", "1"] #允许符号链接

重点要来了,vagrant具体如何配置?

对于一个前端开发来说,整一个docker其实都挺费劲了,因为平时很少接触环境方面的配置,对于黑洞洞的终端很不习惯。接下来分享一下我的配置。

首先,安装vagrant、virtualBox。这个自行百度。不过需要注意的是,windows powershell要更新到powershell 4.x,.net 也要更新。

然后,讲vagrantfile放在项目目录同级,提前下载好centos.box,放在与项目同级目录,使用shell执行:

$ vagrant up

vagrant box下载:
https://app.vagrantup.com/box...

这是我的Vagrantfile,可以参考一下:

# -*- mode: ruby -*- # vi: set ft=ruby :  # Vagrantfile API/syntax version. Don't touch unless you know what you're doing! VAGRANTFILE_API_VERSION = "2"  Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|   config.vm.box = "../centos7.box"    config.vm.provider :virtualbox do |vb|     vb.name = "mbannianhui"     vb.customize ["modifyvm", :id, "--memory", 1024] #修改虚拟机内存     vb.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/vagrant", "1"] #允许符号链接   end    config.vm.network :private_network, ip: "192.168.33.10" #分配ip   config.vm.network :forwarded_port, guest: 2333, host: 2333 #设置端口     config.vm.provision :shell, :inline => <<-EOT     #     # 安装docker:http://www.runoob.com/docker/centos-docker-install.html          sudo yum update     curl -fsSL https://get.docker.com -o get-docker.sh     sudo sh get-docker.sh     sudo systemctl start docker   #启动docker     sudo systemctl enable docker  #docker随系统启动而启动   EOT end 

这样,起来的虚拟机里,docker已经安装好了。查看docker是否成功安装:

sudo docker -v

一些docker命令:

sudo docker run -v /vagrant:/app -p 3000:3000 --name demo -itd --add-host www.demo.com:127.0.0.1 --restart unless-stopped docker.sitename.net/libname/image

说明:

-v /vagrant:/app # 映射目录;'/vagrant':vagrant默认的共享目录,也就是本机放置Vagrantfile文件的目录  -p 3000:3000 : hostPort:containerPosrt ,指定端口  --name demo 给容器起名字  -itd 相当于-i -t -d : -i 以交互模式运行容器,-t为容器重新分配一个伪输入终端,-d后台运行容器  --add-host www.demo.com:127.0.0.1 和windows配置host文件一样  --restart unless-stopped  容器崩坏重启,除非手动stop  docker.sitename.net/libname/image 远程仓库的地址,这里也可以是本地镜像名字,或者官方镜像名字。如果本地没有这个镜像,则先拉取

问题:
如何访问docker容器跑起来的服务?
以上面为例,docker run时指定端口之后,在浏览器输入:
192.168.33.10:3000

原文:https://segmentfault.com/a/1190000016300808

如何解决windows docker共享目录不支持符号链接(do not support symlinks)?的更多相关文章

  1. 解决 Windows Docker 安装 Gitlab Volume 权限问题

    本文首发于我的个人博客,解决 Windows Docker 安装 Gitlab Volume 权限问题 ,欢迎访问! 记录一下 Windows10 下 Docker 安装 Gitlab 的步骤. Ca ...

  2. VMware下的Linux系统中Windows的共享目录,不支持创建软连接

    [问题]  在编译VMware下的Linux系统对从Windows中共享过来的文件,进行编译的时候,遇到:  ln: creating symbolic link XXXXXX : Operation ...

  3. Linux使用笔记: 使用Samba访问windows的共享目录(转载)

    转自:http://easwy.com/blog/archives/mount-a-windows-shared-folder-on-linux-with-samba/ 通常我们使用Samba都是在W ...

  4. Nginx访问VM虚拟机CentOS 7系统与本地Windows系统共享目录403

    用VMware安装了CentOS7系统,并搭建了Nginx,MySQL,PHP的web项目运行环境,为了方便Windows本地主机进行程序调试把Windows本地项目目录共享到了虚拟机CentOS中的 ...

  5. VirtualBox下Linux加载Windows的共享目录

    1.Windows下,在VirtualBox安装增强功能. 菜单 -> 设备 -> 安装增强功能 2.Windows下,在VirtualBox设置共享目录. 设置 -> 共享文件夹 ...

  6. Linxu:在Linux下访问Windows的共享目录

    在 Windows xp 上设置一个共享目录 共享目录:d:\myfiles 在 Linux 下安装 samba-client 客户端 yum install samba-client 安装 cifs ...

  7. Vmware Centos 与 windows 创建共享目录

    一路路都是坑~~ 只为了安装orcle的jdk~~,然而Orcle下载jdk是需要登录才能下载的,所以我在Centos7下使用 wget / curl  都下载不了哦~jdk7 第一步:Vmvare ...

  8. 解决挂载nfs共享目录失败的问题

    现象:在192.168.82.131上 启动了nfs服务,并共享了/nfsfile目录,在另一台主机(ip: 192.1168.82.115)挂载的时候一直阻塞 1 初步分析是防火墙拦截导致,于是进行 ...

  9. 使用jcifs.smb.SmbFile读取Windows上共享目录的文件

    protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws Servl ...

随机推荐

  1. iOS:让标题栏背景图片适应iOS7

    From google: If your app uses a custom image as the background of the bar, you'll need to provide a ...

  2. 容器+AOP实现动态部署(三)

    上节咱们谈到容器的基本特性,这次继续说容器怎样与AOP进行结合.增强咱们的对象.为对象加入额外的方法. 咱们下面方图为说明 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkb ...

  3. 虚拟化(四):vsphere高可用功能前提-共享存储搭建

    虚拟化(一):虚拟化及vmware产品介绍 虚拟化(二):虚拟化及vmware workstation产品使用 虚拟化(三):vsphere套件的安装注意及使用 虚拟化(四):vsphere高可用功能 ...

  4. vijos - P1279Leave-绿光(数学归纳法 + python)

    P1279Leave-绿光 Accepted 标签:[显示标签] 背景 期待这一份幸运,和一份冲劲,多么奇异的际遇--. 燕姿在演唱完绿光这首歌后,出给了姿迷一个考题. 北欧有一个传说! 人一生中能看 ...

  5. LeetCode 234 Palindrome Linked List(回文链表)(*)(?)

    翻译 给定一个单链表,确定它是否是回文的. 跟进: 你能够在O(n)时间和O(1)空间下完毕它吗? 原文 Given a singly linked list, determine if it is ...

  6. ListView无障碍识别整个listView,不识别item,设置了setContentDescription也没实用

    点击ListView的时候.无障碍识别到的是整个listView,不会读点击的那个item. 解决的方法是在getView里手动设置: <span style="font-size:1 ...

  7. 使用powershell来设置时间

    https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/set-date?view=powers ...

  8. 利用安卓手机搭建WEB服务器

    背景介绍 Android是一种基于Linux的自由及开放源代码的操作系统 所以是用安卓来搭建服务器是完全可行的.接下来将教大家如何利用AndroPHP和Feel FTP(或者其他FTP管理器)来在安卓 ...

  9. php 关于使用七牛云存储

    1.首先注册七牛云存储账号 http://www.qiniu.com/ 2.获得密钥 3.仔细查看文档 http://developer.qiniu.com/docs/v6/sdk/php-sdk.h ...

  10. centos的vsftp修改上传下载速度

    比如你想限制本地用户的上传速度和下载速度为1MB/s,则在vsftpd.conf中添加以下内容:local_max_rate = 1048576 ※ 默认单位是Byte/s