1. 程式人生 > >window安裝docker(通過Oracle VM VirtualBox)

window安裝docker(通過Oracle VM VirtualBox)

一、下載:

軟體DockerToolbox-19.03.1.exe下載:https://github.com/docker/toolbox/releases

國內:https://get.daocloud.io/toolbox/

最新版boot2docker.iso:https://github.com/boot2docker/boot2docker/releases

二、安裝:

已經安裝virtualBox和git則勾選掉

安裝完,將boot2docker.iso複製到C:\Users\使用者名稱\.docker\machine\cache

三、使用:

選擇圖示,啟動DockerToolbox

第一次執行Docker Quickstart Terminal時會進行Docker環境的初始化,會在VirtualBox中自動建立名字為【default】的linux虛擬機器,再此過程中會用到boot2docker.iso映象檔案。預設情況下,啟動程式會從GitHub上下載此檔案的最新版,但由於檔案相對較大且速度不給力,多數情況下會下載失敗,造成Docker環境無法啟動,如下圖:

 

解決方法:

其實DockerToolbox安裝檔案自帶了boot2docker.iso映象檔案,位於安裝目錄下(如C:\Program Files\Docker Toolbox) ,將此檔案拷至C:\Users\Administrator\.docker\machine\cache目錄下,然後在網路斷開

的情況下重新啟動,便可初始化成功。如下圖:

其中 【192.168.99.100】是VirtualBox中名字為【default】虛擬機器的ip地址。

利用Xshell登入

Docker Quickstart Terminal使用起來不方便,可以使用XShell進行SSH登入Docker環境(其實就是遠端訪問default linux虛擬機器)。

通過在PowerShell或cmd終端中執行【docker-machine ls】命令,可以看到虛擬機器的地址,本機是192.168.99.100。

 

default虛擬機器的預設使用者名稱和密碼

使用者名稱:docker 


密碼: tcuser

登入成功後的介面

ssh [email protected]
tcuser

 

docker-machine 常用命令
  ip                    Get the IP address of a machine
  ls                    List machines
  restart               Restart a machine
  ssh                   Log into or run a command on a machine with SSH.
  start                 Start a machine
  status                Get the status of a machine
  stop                  Stop a machine
  url                   Get the URL of a machine

 

四、配置:

點選Oracle VM VirtualBox,進入後,有一個default虛擬機器

處理器個數根據自己主機情況設定:1-2個

視訊記憶體根據自己主機設定,有可能則設定為128M

設定一個橋接網絡卡:

新增一個共享資料夾,存放映象資料

 

更改虛擬磁碟儲存位置

 虛擬機器的預設儲存位置是C:\Users\Administrator\.docker\machine\machines ,後期docke映象檔案會不斷增加,為了給系統盤減負,最好將磁碟移動到其他位置。

  •  首先通過PowerShell或cmd終端中執行【docker-machine stop default】命令停止default虛擬機器

  • 通過VirtualBox【管理】-》【虛擬介質管理】介面對虛擬磁碟進行復制

需要注意虛擬磁碟型別的選擇

    

  •  為虛擬機器新增新複製的虛擬磁碟,刪除之前的dick

 

  • 通過PowerShell或cmd終端中執行【docker-machine start default】命令停止default虛擬機器

 

五、虛擬機器內部設定:

修改配置檔案:

1、進入shell介面:

ssh [email protected]
tcuser
sudo vi /var/lib/boot2docker/profile

或者

docker-machine ssh default

2、修改編輯 /var/lib/boot2docker/profile 檔案中的 EXTRA_ARGS 資訊

sudo /etc/init.d/docker stop

docker info |grep "Docker Root Dir" 
#### /mnt/sda1/var/lib/docker
sudo mkdir -p /docker_data/var_lib
sudo cp -R /mnt/sda1/var/lib/docker /docker_data/var_lib/
mv /mnt/sda1/var/lib/docker /mnt/sda1/var/lib/docker_bak

sudo cp /var/lib/boot2docker/profile /var/lib/boot2docker/profile.bak
sudo sed -i '4i--insecure-registry=192.168.99.101:5000' /var/lib/boot2docker/profile
sudo sed -i '4i--registry-mirror=https://p31wiatp.mirror.aliyuncs.com/' /var/lib/boot2docker/profile
sudo sed -i '4i--registry-mirror=https://docker.mirrors.ustc.edu.cn/' /var/lib/boot2docker/profile
sudo sed -i '4i--registry-mirror=https://registry.docker-cn.com/' /var/lib/boot2docker/profile
sudo sed -i '4i--registry-mirror=http://hub-mirror.c.163.com/' /var/lib/boot2docker/profile
## 不管用  sudo sed -i '4i-g=/docker_data/var_lib/docker' /var/lib/boot2docker/profile
sudo sed -i '4i--log-opt max-size=100m' /var/lib/boot2docker/profile

sudo /etc/init.d/docker restart

六、搭建私庫:

docker pull hello-world
docker tag hello-world 192.168.99.101:5000/hello-world:latest
docker push 192.168.99.101:5000/hello-world:latest
curl http://192.168.99.101:5000/v2/_catalog
curl http://192.168.99.101:5000/v2/hello-world/tags/list