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