Docker (toolbox) for windows 7 useful info for me

Docker in new git bash windows

  1. docker-machine start (如果Docker那台VM還沒開)
  2. docker-machine env
  3. 把env輸出結果要求你複製貼上的貼上 e.g., 我的是
    eval $("C:\Program Files\Docker Toolbox\docker-machine.exe" env)
  4. 在Wherehows-docker目錄下,下 docker-compose up

Docker elasticsearch memory too low

如果Elasticsearch開啟時會有 vm.max_map_count [65530] too low的問題
透過 docker-machine ssh default 指令進入docker-machine後,輸入以下指令 :
sudo sysctl -w vm.max_map_count=262144

Change docker machine location

參考這裡新增兩個環境變數 MACHINE_STORAGE_PATHDOCKER_CERT_PATH,指向欲使用的目錄
做任何環境變數的修改,記得bash要重開

Customized docker machine size

以下操作,用Kitematic開啟時,可能會自動移除重建default vm
Toolbox的Kitematic 已被Docker官方列為Deprecated,因此建議以git bash操作為主
參考Kitematic官方建議
使用 --virtualbox-disk-size 參數來指定VM大小,單位是MB。以100GB空間為例:
docker-machine create -d virtualbox --virtualbox-disk-size "100000" default
*記憶體 --virtualbox-memory “4096” 忘記設定,在Virtualbox可以修改

Others about Docker

  1. Mysql 開啟速度過慢:
    若電腦運算效能不佳或記憶體不足可能會發生
    等到Mysql完全開啟後,再重啟Frontend跟Backend
  2. 從容器拿出檔案 or 複製檔案至容器 (資料夾亦可)
    # docker cp <container_name>:<absolute_path> <your_path>
    docker cp wherehowsdocker_wherehows-backend_1:/application/logs/etl/foo.txt . 
    # docker cp <your_path> <container_name>:<absolute_path>
    docker cp foo.txt wherehowsdocker_wherehows-backend_1:/application/logs/etl/ 
    
  3. “Unable to use system certificate pool: crypto/x509: system root pool is not available on Windows” : 重新到官網下載Toolbox安裝更新即可
  4. Docker Toolbox 是給 Win 10 標準版以前的Windows OS使用
  5. Docker Community Edition for Windows 是給Win10 企業版以上的使用
  6. Toolbox的Kitematic is deprecated , toolbox的Kitematic不建議使用
    官方目前建議用 Docker for Mac or Docker for Windows

Troubleshooting

1. x509是甚麼訊息? 

若外網暢通,這個應該不影響使用,可能跟我們公司電腦有自己的憑證有關

2. (Windows User) RippleCloud目錄在d不行嗎?

可以,不過我們之前有遇到問題,怎麼掛都掛不上去,如果不行可以試試看在VitualBox的default VM關機後設定D槽的共享資料夾掛載

3. (Windows User) 如果怎麼用都有一些錯誤訊息導致container無法正確啟動,無法排除怎麼辦?

刪除該Image、把VM砍掉重建、重新安裝Toolbox可能會比正面迎擊解Bug來得快XD

4. (Windows User) 執行bash / docker-compose時有換行符號 /r not found …的UNIX編碼問題

在git bash下這段指令
git config core.autocrlf input
# 或是
git config core.autocrlf false
設定好後再重新create project branch

5. (Windows User) 在"git bash" 無法啟動docker container (Failed to execute script docker-compose)

可能與環境變數沒設定有關係,先輸入以下指令查看是否有環境變數
git bash console
$ docker-machine env
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="C:\Users\yanting_lin\.docker\machine\machines\default"
export DOCKER_MACHINE_NAME="default"
export COMPOSE_CONVERT_WINDOWS_PATHS="true"
# Run this command to configure your shell:
# eval $("C:\Program Files\Docker Toolbox\docker-machine.exe" env)
# 輸入最後一行程式碼後設定環境變數,重新執行指令 e.g., docker-compose up 即可
$ eval $("C:\Program Files\Docker Toolbox\docker-machine.exe" env)

6. Send web hook error occur! 
在run Dispatcher的時候出現:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building...
若有設定內外網分流,檢查一下是不是有被內網擋到 (e.g. 切成純外網試試看)

7.Kitematic 啟動時出現紅字錯誤,無法進入(windows)

這是由於系統權限問題,將Kitematic這個執行捷徑按右鍵 -> 內容 -> 相容性 -> 以系統管理員的身分執行程式。
Docker Quickstart Terminal的捷徑也要做相同的設定。

8. VirtualBox 在"選取設定"時,出現錯誤"開啟虛擬機器 default 的工作階段失敗"

同第7點,請將VirtualBox捷徑,設定以系統身份執行程式。或重開機,然後不要開Docker Terminal,直接進Oracle VM VirtualBox也可以

Docker常用commands

# 清除全部的images
docker rmi $(docker images -q)
# 清除<none> tag的images
docker rmi $(docker images --filter "dangling=true" -q)
# 清除全部的containers
docker rm $(docker ps -a -q)
# 清除全部unmount的volumes
docker volume prune

參考自己的筆記

留言