因為在實體機上使用Docker會導致VMware無法啟動虛擬機,所以嘗試了在虛擬機中安裝Docker.
1. 創建Windows虛擬機.
- windows至少是Win10 1.9***或者Win 11. 這是Docker Desktop要求的。
2. 虛擬機CPU要開啟虛擬化功能。
- 虛擬機的CPU開啟虛擬化
- 虛擬機的memory要不小于4G
3. 虛擬機安裝wsl2
- 開啟虛擬化功能。要開啟Hyper-V, Virtual Machine Platform, Windows SubSystem for Linux 3項。
- 命令行執行wsl --update 來安裝最新的wsl核心。
- 命令行執行wsl --set-default-version 2 設置默認使用wsl2
- wsl --install -d ubuntu-24.04 安裝ubuntu 24.04
可以通過wsl --list --online 查看所有Linux發行版名,再下載合適的Linux
- wsl -l -v 查看已安裝的ubuntu是否是wsl2, 如果不是的話執行 wsl --set-version ubuntu-24.04 2 來設置為wsl2
安裝Docker
- 從Docker官網下載Docker Desktop安裝包
- 成功安裝后,啟動Docker service. 如果Docker Service沒有啟動的話,要手動啟動。這里不贅述如何啟動windows服務。
- 運行Docker Desktop, 沒有提示Docker Engine Stopped說明Docker 正常運行。
補充
docker 運行成功后發現無法下載鏡像
- 升級Docker Desktop 到最新
- 添加了鏡像源
嘗試在setting -> Docker Engine里添加以下鏡像源
“registry-mirrors”: [“https://registry.docker-cn.com”,“https://docker.mirrors.ustc.edu.cn”,“https://registry.cn-hangzhou.aliyuncs.com”,“http://hub-mirror.c.163.com”,"https://docker.xuanyuan.me","https://docker.1ms.run"
]重啟Docker Engine后執行docker pull python:3.13.2 返回 Error response from daemon: Head “https://registry-1.docker.io/v2/library/python/manifests/3.13.2”: Get “https://auth.docker.io/token?scope=repository%3Alibrary%2Fpython%3Apull&service=registry.docker.io”: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
- 上一步的關鍵點是docker依然訪問了https://registry-1.docker而不是新配置的鏡像源。最后逐一排查源,最后修改到如下終于成功下載了鏡像。
“registry-mirrors”: ["https://docker.xuanyuan.me"
]