2016-08-30 28 views
0

我試圖將存儲驅動程序更改爲mac上的devicemapper。並按照Change docker storage driver on Mac OS X我如何將Docker存儲驅動程序更改爲mac上的devicemapper

中的步驟,但我得到了以下錯誤,我的docker for mac是最新版本。

$ docker-machine create --driver virtualbox --engine-storage-driver devicemapper test2 
Running pre-create checks... 
Creating machine... 
(test2) Copying /Users/weiwang/.docker/machine/cache/boot2docker.iso to /Users/weiwang/.docker/machine/machines/test2/boot2docker.iso... 
(test2) Creating VirtualBox VM... 
(test2) Creating SSH key... 
(test2) Starting the VM... 
(test2) Check network to re-create if needed... 
(test2) Waiting for an IP... 
Waiting for machine to be running, this may take a few minutes... 
Detecting operating system of created instance... 
Waiting for SSH to be available... 
Detecting the provisioner... 
Provisioning with boot2docker... 
Copying certs to the local machine directory... 
Copying certs to the remote machine... 
Setting Docker configuration on the remote daemon... 
Checking connection to Docker... 
Error creating machine: Error checking the host: Error checking and/or regenerating the certs: There was an error validating certificates for host "192.168.99.105:2376": read tcp 192.168.99.1:49168->192.168.99.105:2376: read: connection reset by peer 
You can attempt to regenerate them using 'docker-machine regenerate-certs [name]'. 
Be advised that this will trigger a Docker daemon restart which will stop running containers. 

回答

1

注意:請閱讀更新

Devicemapper不再被支持。 你可以使用疊加也很不錯。

用法: docker-machine create --driver virtualbox --engine-storage-driver overlay test2

編輯:

我最初的評論沒有正確地回答這個問題。在對devicemapper存儲驅動程序的工作方式進行了一些更深入的研究之後,事實證明,基本操作系統docker-machine使用的默認boot2docker不支持devicemapper存儲驅動程序。

下面是支持的發行版的列表:

  • RHEL/CentOS的/ Fedora的
  • 的Ubuntu 12.04
  • 的Ubuntu 14.04
  • Debian的

更詳細的信息可以發現here

所以要解決這個問題,你需要在虛擬機中安裝一個提到的發行版。添加一個SSH服務器和一個無密碼sudo用戶,可以在不使用tty的情況下運行命令。

我在VirtualBox中安裝了一個CentOS虛擬機,添加了一個NAT和一個僅限主機的驅動程序(用於下載Internet包的NAT,以及用於專用網絡的docker-machine和VM的Host only適配器可以通信。)

設置VM後,可以使用以下命令將其連接到docker-machine。 docker-machine會掛載到VM並檢查是否安裝了Docker Engine。如果情況並非如此,它將自動下載並配置。在這裏使用的通用驅動程序

docker-machine create \ 
    --driver generic \ 
    --generic-ip-address=192.168.58.14 \ 
    --generic-ssh-port 22 \ 
    --generic-ssh-key ~/.ssh/id_rsa \ 
    --engine-storage-driver devicemapper \ 
    docker-centos 

更多信息: https://docs.docker.com/machine/drivers/generic/

希望這可以幫助你多一點就比最初的答案:)

+0

感謝Menzo的方式,我能夠創造機器與覆蓋作爲存儲驅動器,但這並不能解決我的問題。我需要在容器內部運行服務,但該服務不支持aufs和覆蓋 – weiwang

+0

@weiwang我對這個主題做了更多的研究並更新了我的答案。它肯定仍然可以使用devicemapper存儲驅動程序。 Docker只是不支持它的默認基本操作系統。 –

+0

太棒了!謝謝(你的)信息。 – weiwang

相關問題