摘要:win10安裝docker進行學習的兩種途徑:
- Docker for Windows Installer.exe(地址https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe)
- DockerToolbox-19.03.1.exe(需要在docker hub進行注冊ID,需要翻牆才能注冊成功)
- 阿里雲鏡像提供的版本跟官方的不一致,更新比較慢:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/
- 官方地址:https://docs.docker.com/toolbox/toolbox_install_windows/
- DockerToolbox的安裝教程請自行百度。
- 本文講的是win10系統下Docker for Windows Installer與VMware WorkStation虛擬機的共存問題,因為使用Docker必須開啟Hyper-V(控制面板-->程序和功能-->啟用或關閉Windows功能),需要系統的虛擬化支持;而使用VM WorkStation則必須關閉Hyper-V,否則無法成功創建虛擬機,在每次安裝鏡像文件向硬盤寫安裝文件時會報IO輸入錯誤,造成安裝系統崩潰。(Hyper-V和VMware WorkStation都是實現對計算機資源的虛擬化支持)每次Hyper-V的開啟/關閉都會重啟系統,很耗時間與性能。所以希望直接關閉Hyper-V,尋找另一種途徑使用Docker,最終在Docker官方指導文檔中找到第三方支持:https://docs.docker.com/machine/drivers
- 阿里雲鏡像提供的版本跟官方的不一致,更新比較慢:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/
- win10系統Docker和VMware WorkStation共存的辦法:
- 下載二進制文件 -- docker-machine-driver-vmwareworkstation.exe,復制到C:\Program Files\Docker\Docker\resources\bin下(docker的安裝路徑)
- 打開git的git-bash:
- docker-machine ls 檢查是否有machine實例,如果有,請自行考慮是否卸載它。
- docker-machine stop dev && docker-machine rm dev
- 暫停並且卸載NAME為dev的machine實例。此處的dev每個人都不同,可能是default或其它,具體看docker-machine ls命令列出來的數據。
- 暫停並且卸載NAME為dev的machine實例。此處的dev每個人都不同,可能是default或其它,具體看docker-machine ls命令列出來的數據。
- docker-machine create --driver=vmwareworkstation dev
- 創建一個名稱為dev的machine實例。
- 創建一個名稱為dev的machine實例。
- docker-machine ls
- 查看創建的實例(URL的ip可以使用遠程機登陸使用docker):
- 查看創建的實例(URL的ip可以使用遠程機登陸使用docker):
- docker-machine ls 檢查是否有machine實例,如果有,請自行考慮是否卸載它。
- 啟用實例:docker-machine start dev
- 停用實例:docker-machine stop dev
- 啟用docker: docker-machine ssh dev(docker-machine ssh 實例名)(實例必須是開啟狀態)
-
連接到machine實例之后,你可以使用docker命令進行任何受支持的操作...
例如docker push,pull等等....
-
- 測試:docker
- docker登錄:docker login(在使用docker時,是否登陸沒有特別大的影響,只不過是,如果登陸了,就可以向docker hub上push自己的鏡像了)
- 實例啟動成功后,使用遠程連接工具(SecureCRT)連接docker(主機名為實例的IP,用戶名為docker,密碼為tcuser)
- docker拉取tomcat,並運行:docker run -d -p 8080:8080 tomcat
- 注:前者是外圍訪問端口:后者是容器內部端口(必須加上外圍訪問端口,不然瀏覽器 http://docker本機ip:8080/ 無法訪問打開)
如下命令可后台啟動tomcat
-d: 后台運行容器,並返回容器ID;
-i: 以交互模式運行容器,通常與 -t 同時使用;
-t: 為容器重新分配一個偽輸入終端,通常與 -i 同時使用; - 外圍訪問端口可以自定義;容器內部端口必須一致,不然可以啟動成功,但無法進行訪問,比如tomcat的端口是8080:
- 訪問地址:
- 注:前者是外圍訪問端口:后者是容器內部端口(必須加上外圍訪問端口,不然瀏覽器 http://docker本機ip:8080/ 無法訪問打開)
- docker容器交互運行,並進入容器查看信息:docker run -itd -p 8080:8080 tomcat
- 使用如下命令進入tomcat鏡像:docker exec -it 容器id /bin/bash
- 使用如下命令進入tomcat鏡像:docker exec -it 容器id /bin/bash
備注:在騰訊雲服務器安裝docker,運行后,可以使用 ”curl http://ip:端口“進行訪問,有內容輸出表示成功,ip可以是容器IP和本機IP(客戶機訪問雲服務器運行的容器,使用公有IP和外圍訪問端口)。