Windows上使用linux子系統(WSL)使用Docker


前言

windows 10 2004版本已更新wsl2,可實現在Linux子系統中安裝使用docker,此教程為2004以下版本使用docker,建議嘗試更新windows 10 2004嘗試使用wsl2

本文介紹在非Windows10 2004版本下如何使用Docker的兩種方式

windows Linux子系統 + WLS + Docker for windows

windows Linux子系統 + WSL + VM虛擬機

背景

在之前使用Docker時一直使用的Docker for windows,然而windows版很多命令並不支持;之后Windows 10linux子系統后本想終於可以完美解決,可真實測試后發現,現在的版本沒有辦法在子系統中使用Docker ,雖然可以安裝成功但鏡像無法啟動。之后就想到可否在windows上安裝Docker for windows,子系統使用Docker CLI來調用Windows上的Docker服務,經過驗證發現可行。但需要開啟hyper虛擬化,並且無法再使用vm虛擬機,所以本人最后用了另外一種方式,在虛擬機中安裝Docker

windows Linux子系統 + WLS + Docker for windows

前提

打開Hyper-V,並打開cpu虛擬化功能

安裝Linux子系統(WSL)

安裝Docker for Windows

1.1 安裝Linux子系統(WSL)

現在Windows app store上已經有很多Linux子系統提供安裝,像UbuntuopsnsuseCentos等,在安裝前需要在程序與功能中打開適用於Linux的Windows子系統功能。

如果是企業版windows或者server版沒有windows app store,需要查看是否支持子系統功能,如果支持可以手動安裝子系統,安裝與下載方法參考微軟官方文檔

https://docs.microsoft.com/zh-cn/windows/wsl/install-manual

安裝完成后在cmd中輸入bash,進入子系統,或者ctrl+r,bash進入

如果想深入了解WSL可查看微軟官方文檔

https://docs.microsoft.com/zh-cn/windows/wsl/about

1.2 配置Docker for Windows

Docker設置中需要開啟2375端口,以便守護程序在TCP端點上進行偵聽。

1262599943

1.3 配置WSL

我們需要在WSL上安裝Docker客戶端

apt install docker.io

安裝完成后配置docker_host連接向docker for windows

export DOCKER_HOST=tcp://127.0.0.1:2375

現在就可正常使用docker

20200117154824548

但是改環境變量只會持續到會話結束,每次打開bash都需要重新設置

因此您需要在主目錄中的一個名為.bash_profile或者 .bashrc的文件中設置該變量

vi ~/.bashrc

在文件末尾添加

export DOCKER_HOST=tcp://127.0.0.1:2375		//ip根據實際修改,參考2.2

20200117154852152

1601277845

保存后重啟bash執行docker祥光命令可以照常執行

第一種方式需要開啟hyper,而hypervm虛擬機只能啟動一個,然而又有需要使用vm的需要,這是就不能使用docker for windows,下面介紹在vm中安裝docker來實現。

windows Linux子系統 + WSL + VM虛擬機

2.1 vm中安裝linux版docker,配置docker

vm中安裝linux就不詳述了,自行百度,安裝docker也是,都很簡單,下面介紹下安裝完docker后需要配置哪些東西。

與 1.2 相同,也是需要開啟2375端口,對外提供api調用來實現。

自行根據自己linux系統及版本修改以下命令

vi /usr/lib/systemd/system/docker.service

ubuntu18.04 路徑

vi /lib/systemd/system/docker.service

打開systemddocker服務配置文件,在ExecStart中加入以下配置

-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

20200119093742859

修改后保存,刷新配置,重啟docker服務

systemctl daemon-reload 	//1.加載docker守護進程
systemctl restart docker 	//2.重啟docker服務

查看已開啟的tcp端口中是否有2375,有的話則證明已配置成功。

20200119094948710

這是docker服務端的配置就完成了,如果沒有使用 systemd 工具,自行百度實現方式吧。

2.2 配置WSL

此步驟與 1.2 相同,ip地址改為虛擬機ip地址,也可設置成固態ip,然后映射到本機端口,依然使用127.0.0.1

2.3 windows環境變量

如果不想使用linux子系統也可安裝docker for windwos, 但不起服務,只是用Docker CLI,在系統環境變量中添加:

變量名:DOCKER_HOST
變量值:tcp://127.0.0.1:2375	//ip根據實際修改,參考2.2

這中方法可實現同樣的效果,不過不知是否與linux下的存在差異,可自行決定用哪種方式。

20200119095810699

3. 配置cmder

另外,推薦一款windows下代替cmd的工具cmder,畢竟cmd真的很難用,參考下面的文章。

https://www.jianshu.com/p/5b7c985240a7

可將其設置為啟動bash,自動進入linux子系統。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM