簡介
想花三篇文章寫下從Windows(WSL)上開啟Docker部署nginx/node/vue/php/html等項目並上傳到雲的全過程,盡量通俗易懂,把問題都復現一下。
這是第一篇,先在本地Windows環境下安裝WSL並在WSL內安裝Docker(套娃開始)。
本篇使用的終端是PowerShell(Windows Terminal),用其它也應該不影響,注意管理員模式開啟。
剩下兩篇完成后會在這給鏈接。
第二篇:Docker內環境部署(未完成)
第三篇:把Docker部署到雲端(未完成)
WSL 安裝
📚官方文檔
准備工作
開啟虛擬化(BIOS)
有的是默認開啟的,莽夫可以直接跳過。
第一步:進入BIOS設置
第二步:
CPU | 方法 |
---|---|
Intel | 將Intel(VMX) Virtualization Technology開啟 |
AMD | 將 AMD-v開啟 |
檢查系統版本
版本要求:Windows 10 version 2004 高於 (Build 19041 以上) 或者 Windows 11
檢查版本: + 打開運行面板,輸入winver
后回車
安裝WSL
📚官方文檔
- 老版本手動安裝
老版本需要先裝WSL后更新到WSL2 - Preview版安裝
最新特性版
💿老版本安裝詳情
⚠ 前排提醒 涉及到重啟計算機 ⚠
-
部署映像服務和管理工具
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
-
啟用虛擬機平台可選功能
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
-
重啟計算機
-
下載Linux內核更新程序包
點擊下載,下載后點開后直接秒安裝。 -
下載Linux分發版本並啟動
在微軟應用商店搜索WSL,下載Ubuntu20.04 TLS並啟動
啟動后配置用戶名和密碼即可
-
設置默認版本為WSL2
wsl --set-default-version 2
設置失敗的解決方案:(設置成功請直接跳過下面的abcde,看第7條)
a. 先在控制面版 功能 中開啟Hyper-V
b. 確保BIOS開啟虛擬化(可以網上搜一下自己電腦怎么開的)
c. 執行bcdedit /set hypervisorlaunchtype auto
(和其它虛擬機沖突問題)
d. 本地組策略配置(win+r 執行gpedit.msc
)
e. 關於BIOS沒有VT配置的(比如小米那精簡的BIOS...),打開控制面板-程序和功能-啟用或關閉Windows功能-(里面可以找到)Windows虛擬機監控程序平台(勾選確定)
-
將已安裝的系統由WSL轉成WSL2
wsl -l -v
檢查版本
wsl --set-version Ubuntu-20.04 2
轉換
參考WSL基本命令 -
進入終端
wsl
可以試試在wsl環境下輸入explorer.exe
會打開Windows的資源管理器,相當於可以直接在運行linux運行Windows的命令了,贊👍!
另外在資源管理器地址欄輸入\\wsl$
回車也可以直接看到Ubuntu的目錄拉。
至此,WSL已經安裝完成了。
Docker安裝
📚官方文檔
WSL2相比WSL1來說可以完美支持Docker。與WSL1的模擬Linux API不同的是,WSL2采用在Hyper-V虛擬機中運行的方案。
更換鏡像源
sudo vim /etc/apt/sources.list
將該文件內容替換為如下(共10條,主要是鏡像地址變了換為阿里雲鏡像了,然后去掉了原有的一堆注釋,其它沒變)
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted
deb http://mirrors.aliyun.com/ubuntu/ focal universe
deb http://mirrors.aliyun.com/ubuntu/ focal-updates universe
deb http://mirrors.aliyun.com/ubuntu/ focal multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted
deb http://mirrors.aliyun.com/ubuntu/ focal-security universe
deb http://mirrors.aliyun.com/ubuntu/ focal-security multiverse
全選,刪除,再復制進去(涉及到的vim操作:黑框框中輸入gg
回到開頭,輸入v
進入可視化編輯,按住同時按全選,再按d刪除,+把上面復制進去,保存輸入:wq!
回車即可,再進去就改成了)
不過用vim不習慣的話這里可以在Windows打開WSL的文件目錄,用現代編輯器打開進行編輯(如vscode,notepad++等)
題外話:如果vscode安裝了wsl插件(插件名:Remote - WSL),甚至可以直接在WSL中通過輸入code <路徑名>的方法用vscode打開目錄/文件,而在vscode中集成的終端也會有Ubuntu的終端操作,這一套下來只需要一個vscode就可以實現在Windows打代碼,在Linux運行的操作!很強👍!
安裝Docker
如下腳本會識別系統版本並從官網安裝下載安裝對應版本
# install docker
curl -fsSL get.docker.com -o get-docker.sh
sh get-docker.sh
if [ ! $(getent group docker) ];
then
sudo groupadd docker;
else
echo "docker user group already exists"
fi
sudo gpasswd -a $USER docker
sudo service docker restart
rm -rf get-docker.sh
可以自己手動輸入,也可以直接從git上拷一份然后運行
git clone https://github.com/ccbyte/useful-scripts
sh useful-scripts/docker-install.sh

完成后輸入docker --version
可以查看版本即為成功。
啟動docker
sudo service docker
最后檢查看到Client和Sever都有信息即為啟動成功。
docker version
參考資料
https://dockertips.readthedocs.io/en/latest/docker-install.html
https://space.bilibili.com/364122352/channel/detail?cid=166238&ctype=0
https://docs.docker.com/engine/install/ubuntu/