Docker (toolbox) for windows 7 useful info for me
Docker in new git bash windows
docker-machine start
(如果Docker那台VM還沒開)
docker-machine env
- 把env輸出結果要求你複製貼上的貼上 e.g., 我的是
eval $("C:\Program Files\Docker Toolbox\docker-machine.exe" env)
- 在Wherehows-docker目錄下,下
docker-compose up
docker-machine start
(如果Docker那台VM還沒開)docker-machine env
eval $("C:\Program Files\Docker Toolbox\docker-machine.exe" env)
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
透過
docker-machine ssh default
指令進入docker-machine後,輸入以下指令 :sudo sysctl -w vm.max_map_count=262144
Change docker machine location
做任何環境變數的修改,記得bash要重開
做任何環境變數的修改,記得bash要重開
Customized docker machine size
以下操作,用Kitematic開啟時,可能會自動移除重建default vm
Toolbox的Kitematic 已被Docker官方列為Deprecated,因此建議以git bash操作為主
docker-machine create -d virtualbox --virtualbox-disk-size "100000" default
*記憶體 --virtualbox-memory “4096” 忘記設定,在Virtualbox可以修改
以下操作,用Kitematic開啟時,可能會自動移除重建default vm
Toolbox的Kitematic 已被Docker官方列為Deprecated,因此建議以git bash操作為主
Toolbox的Kitematic 已被Docker官方列為Deprecated,因此建議以git bash操作為主
docker-machine create -d virtualbox --virtualbox-disk-size "100000" default
Others about Docker
-
Mysql 開啟速度過慢:
若電腦運算效能不佳或記憶體不足可能會發生
等到Mysql完全開啟後,再重啟Frontend跟Backend
-
從容器拿出檔案 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/
-
“Unable to use system certificate pool: crypto/x509: system root pool is not available on Windows” : 重新到官網下載Toolbox安裝更新即可
-
Docker Toolbox 是給 Win 10 標準版以前的Windows OS使用
-
Docker Community Edition for Windows 是給Win10 企業版以上的使用
-
Toolbox的Kitematic is deprecated , toolbox的Kitematic不建議使用
官方目前建議用 Docker for Mac or Docker for Windows
Mysql 開啟速度過慢:
若電腦運算效能不佳或記憶體不足可能會發生
等到Mysql完全開啟後,再重啟Frontend跟Backend
若電腦運算效能不佳或記憶體不足可能會發生
等到Mysql完全開啟後,再重啟Frontend跟Backend
從容器拿出檔案 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/
“Unable to use system certificate pool: crypto/x509: system root pool is not available on Windows” : 重新到官網下載Toolbox安裝更新即可
Docker Toolbox 是給 Win 10 標準版以前的Windows OS使用
Docker Community Edition for Windows 是給Win10 企業版以上的使用
Toolbox的Kitematic is deprecated , toolbox的Kitematic不建議使用
官方目前建議用 Docker for Mac or Docker for Windows
官方目前建議用 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
git config core.autocrlf input # 或是 git config core.autocrlf false |
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. 切成純外網試試看)
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 ) |
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
# 清除全部的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 |
參考自己的筆記
留言
張貼留言