Docker實踐過程中遇到的一些問題總結(持續更新中)

拾月_發表於2019-05-06

相信大家在進行docker實踐的過程中或多或少都會遇到一些問題,本篇文章博主主要對自己實踐過程中遇到的問題進行一個總結,希望會對大家有所幫助。

問題一:當執行指令docker-machine create時提示No default boot2docker iso found Iocally, downloading the latest release... 

解決方案:手動下載需要的boot2docker iso檔案,然後放到指定的路徑下。

具體步驟:

1. 通過瀏覽器訪問如下地址:api.github.com/repos/boot2… (注意該地址可能需要翻牆訪問),找到"html_url": "https://github.com/boot2docker/boot2docker/releases/tag/v18.09.5"

該地址就是最新的boot2docker iso檔案的下載地址

2. 如圖所示找到所需的安裝包並下載:

Docker實踐過程中遇到的一些問題總結(持續更新中)

3. 將下載好的檔案放到如下路徑:/User/{username}/.docker/machine/cache/

4. 重新執行docker-machine create指令即可


問題二:operating system "windows" cannot be used on this platform or operating system "Linux" cannot be used on this platform

解決方案:

不同型別container下build出來的image只能在所對應的型別的container下執行,比如不能在windows container中執行linux container build出來的image


問題三:當執行docker-machine scp指令將本地檔案copy到docker-machine create指令建立的虛擬機器中時,可能會遇到如圖所示的情況:

Docker實踐過程中遇到的一些問題總結(持續更新中)

需要我們輸入賬號的密碼,但是我們在通過docker-machine create指令建立vm的時候根本沒有要求輸入賬號和密碼

解決方案:通過linux sudo passwd指令手動修改賬號的密碼

具體步驟:

1. 進入到我們建立的vm中

2. 執行sudo passwd account-name 

3. 我們就可以利用修改之後的密碼來訪問了


問題四:在使用docker-compose.yml檔案來管理service的時候,執行docker stack deploy -c docker-compose.yml stack-name指令時可能會遇到類似如下問題:

networks Additional property networks is not allowed

replicas Additional property replicas is not allowed

解決方案:

該篇檢查YAML檔案格式,為大家提供一個YAML檔案線上校驗器 大家可以通過這個線上校驗器來檢查自己的YAML檔案格式,YAML檔案中key: value, key的冒號和value之間需要有一個空格,大家一定要注意


問題五:在通過指令docker swarm init建立docker容器叢集時遇到如下錯誤:

Error response from daemon: could not choose an IP address to advertise since this system has multiple addresses on different interfaces (XXX ip on eth0 and XXX ip on eth1) - specify one with --advertise-addr

解決方案:遇到該問題的原因是因為我們的膝上型電腦大部分都是雙網路卡,在建立docker叢集的時候需要指定一個固定的ip和port,以便可以讓其他子節點加入到該叢集中,根據錯誤提示我們可以使用如下指令解決這個問題:

docker swarm init --advertise-addr ip:port


我會根據自己在使用docker過程中遇到的問題不斷的更新該篇文章,希望能夠幫到大家。


下一篇(Docker容器中應用程式的log輸出管理)






相關文章