国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

如何解決windows docker共享目錄不支持符號鏈接(do not support symli

MadPecker / 2433人閱讀

摘要:使用,搭建前端開發環境時,在共享目錄使用安裝前端依賴時,發現報錯,無法使用符號連接。使用共享出來的目錄是支持符號連接的,問題解決了。

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/27432.html

相關文章

  • 搭建Docker私有倉庫

    摘要:配置項數據持久化支持登錄授權驗證測試做代理我的方式和遇到的問題作為一個容器其它方案相關鏈接官方提供了鏡像,可以方便的搭建私有倉庫,詳細文檔參考這里。支持為了使得私有倉庫安全地對外開放,需要配置支持。 摘要 這篇文章內容包括搭建docker私有倉庫的一些配置項和遇到的問題及解決方案。 1.配置項 1.1. 數據持久化 1.2. TLS 支持 1.3. 登錄授權驗證 1.4. docker...

    fizz 評論0 收藏0
  • docker系列--namespace解讀

    摘要:目前內核總共實現了種隔離和消息隊列。參數表示我們要加入的的文件描述符。提供了很多種進程間通信的機制,針對的是和消息隊列。所謂傳播事件,是指由一個掛載對象的狀態變化導致的其它掛載對象的掛載與解除掛載動作的事件。 前言 理解docker,主要從namesapce,cgroups,聯合文件,運行時(runC),網絡幾個方面。接下來我們會花一些時間,分別介紹。 docker系列--names...

    wupengyu 評論0 收藏0
  • docker系列--namespace解讀

    摘要:目前內核總共實現了種隔離和消息隊列。參數表示我們要加入的的文件描述符。提供了很多種進程間通信的機制,針對的是和消息隊列。所謂傳播事件,是指由一個掛載對象的狀態變化導致的其它掛載對象的掛載與解除掛載動作的事件。 前言 理解docker,主要從namesapce,cgroups,聯合文件,運行時(runC),網絡幾個方面。接下來我們會花一些時間,分別介紹。 docker系列--names...

    cikenerd 評論0 收藏0

發表評論

0條評論

MadPecker

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<