關于win10下安裝ubuntu子系統(20.04)并使用docker的問題
最近由于公司需要部署服務器至外部公司使用 由于前期訪問量少 所以想暫時使用win10盒子作為服務器使用,由于看到win10支持了ubuntu子系統,覺得可以嘗試下,花了一天走完了里面的坑,現將此記錄于此,分享一下,少走一些坑 如有描述不對或其他問題 請不吝賜教和指正 謝謝!
安裝win10 ubuntu20.04子系統
-
設定-安全與更新-針對開發者-開發者選項模式里面;選擇開發者模式

-
可以直接在搜索框搜索啟用或關閉Windows功能

-
也可以在控制面板>程式>啟用或關閉Windows功能>勾選適用于Linux的Windows子系統>確定



確定完需要重啟就重啟
- 打開微軟商店,搜索ubuntu,根據自己想要的版本點擊下載,安裝,我這里下載的是20.04


正常安裝,完成后,打開,會進入一個終端界面,稍等片刻會提示自己輸入用戶名和密碼,輸入進去后,Ubuntu子系統便安裝成功
-
修改root賬戶的密碼
sudo passwd root -
切換到root用戶 有些檔案普通用戶無法操作
sudo su -
查看是否已安裝ssh,一般是已安裝好的
dpkg -l | grep ssh

-
查看ssh服務是否開啟,一般沒開啟,需要手動設定后開啟服務
service ssh status
新安裝的話,應該顯示的狀態是未開啟的.現在需要去設定ssh的組態檔
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
vim /etc/ssh/sshd_config
埠看情況,一般不用修改 圖片為參考

-
開啟ssh服務
service ssh startdpkg-reconfigure openssh-server操作此命令時,直接確認回車

-
查看ssh狀態 沒有開啟的話就啟動一下

看到這個的時候說明已經成功了,此時你可以用你使用的ssh工具進行連接測驗 一般默認為你宿主機的ip -
設定開機啟動ssh服務
如果不設定開機啟動ssh 而需要登錄ubuntu去開啟ssh服務再連,很麻煩 -
創建init.wsl檔案,保存并保存.注意#! /bin/sh這行不是注釋,是sh解釋器的指定方式 完整復制進檔案
執行 vim /etc/init.wsl
復制以下內容至 init.wsl,:wq 保存退出
#! /bin/sh
/etc/init.d/ssh $1 -
添加執行權限
chmod +x /etc/init.wsl -
編輯sudoers,避免輸入密碼
請勿使用 vi 或者 vim 編輯檔案 ,或者去使用root權限把此檔案變成可寫的操作,
這里我們使用visudo
執行 sudo visudo
添加一行 進去
%sudo ALL=NOPASSWD: /etc/init.wsl
怎么退出?

-
配置啟動vbs
先在運行>命令(win+r)中輸入shell:startup打開啟動檔案夾

再在該檔案夾中創建檔案ubuntu20.04.vbs
將以下內容寫入該檔案并保存
Set ws = WScript.CreateObject(“WScript.Shell”)
ws.run “wsl sudo /etc/init.wsl start”, vbhide -
重啟win10,就可以測驗是否成功了,使用ssh工具連接,如果成功連接 則代表成功
如果你想同步啟動ubuntu客戶端的話 可以把運行連接直接放進剛剛創建的腳本vbs檔案一起

ubuntu20.04更換國內源
- 參考這篇博客
https://blog.csdn.net/weixin_43532644/article/details/108225437
安裝docker
-
卸載舊版本
Docker 的舊版本被稱為 docker,docker.io 或 docker-engine ,如果已安裝,請卸載它們:
執行 sudo apt-get remove docker docker-engine docker.io containerd runc -
在終端中輸入以下命令 更新apt
執行 sudo apt-get update -
安裝以下包以使apt可以通過HTTPS使用存盤庫
執行 sudo apt-get install apt-transport-https ca-certificates software-properties-common curl -
添加Docker官方的GPG密鑰:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg|sudo apt-key add - -
使用下面的命令來設定stable存盤庫
sudo add-apt-repository “deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu
$(lsb_release -cs) stable” -
再更新一下apt
sudo apt-get update -
安裝最新版本的Docker CE 如果需要安裝指定版本,請參考其他文章
sudo apt-get install -y docker-ce -
測驗運行
執行 sudo docker run hello-world
此時你會可能會發現 等等類似的錯誤,

docker的守護行程沒有啟動,可是為什么呢?明明Docker都在WSL里安裝成功了啊,事實上除了docker -v不需要依賴守護行程,其余的命令都需要依賴守護行程,而WSL恰恰是不支持docker-engine的,那怎么辦,解決辦法還是有的
安裝docker for windows
- 查看Hyper-v是否開啟,啟用Hyper-v可以在電腦中配置虛擬機,開啟步驟:控制面板->程式->啟用或關閉Windows功能->把Hyper-v勾上->最后重啟電腦就可以了

關于win10家庭版沒有 Hyper-v
-
在你的電腦 新建 名為 Hyper-V.cmd檔案
-
將以下內容復制進去
pushd “%~dp0”
dir /b %SystemRoot%\servicing\Packages*Hyper-V*.mum >hyper-v.txt
for /f %%i in (‘findstr /i . hyper-v.txt 2^>nul’) do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL

-
以管理員身份運行,稍微等待一會,下載完成重啟,
-
再次查看是否勾選 一般默認勾選了
下載安裝
- 官網下載鏈接:https://hub.docker.com/editions/community/docker-ce-desktop-windows/
- 安裝沒什么好描述的,確定就好了,
驗證
- 進入cmd視窗查看docker是否安裝成功,(docker --version)

配置docker
配置鏡像加速
-
配置加速地址,參考https://www.imooc.com/article/48684
-
拿到地址配置到

-
輸入docker info 檢查是否配置成功

允許遠程連接docker
-
請打開此選項 restart 重啟 為的是能讓我們wsl docker連接通信

-
將WSL配置為連接到Docker for Windows
執行命令:export DOCKER_HOST=tcp://localhost:2375 -
此時 你可以嘗試以下 docker是否正常了

-
但是,該環境變數只會持續到會話結束,每次打開bash時都必須重新設定它,因此,為了避免這種情況,需要在主目錄中的一個名為 .bashrc的檔案中設定該變數
配置WSL docker 自動連接
-
進入/home/user/打開此檔案 vi .bashrc

-
在檔案的最后一行加上一句 export DOCKER_HOST=tcp://localhost:2375
保存后重新啟動bash控制臺執行docker相關命令可以照常執行了

安裝Docker Desktop報錯WSL 2 installation is incomplete.
- 重啟或者啟動時 Docker Desktop 可能會出現

- 更加報錯提示,可能是我們使用的wsl2版本老了,需要我們自己手動更新一下,我們根據提示去微軟官網下載最新版的wsl2安裝后即可正常打開,
前往 https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi - 再次嘗試restart Docker Desktop
關于 開機不能自動啟動 Docker Desktop的問題
- 如果你的電腦 無法正常開機啟動 Docker Desktop 那么你可以查看或者排查下是否安裝了殺毒軟體 禁止其啟動,或者嘗試放在純凈版系統下安裝測驗 沒有其他的問題 只能是你自己系統的問題
如有描述不對或其他問題 請不吝賜教和指正 謝謝!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/291276.html
標籤:其他
