Linux虚拟机的替代品:Docker与WSL2上手笔记
目錄
- 安裝Docker
- 可能出現的問題
- 內核需更新
- Linux 內核更新包
- 將 WSL 2 設置為默認版本
- An error occurred
- 安裝鏡像
- 使用Microsoft Store安裝所選的 Linux 分發
- 手動安裝鏡像及文件夾的共享
- Docker run 命令
- Windows Terminal的安裝
- 在Windows Terminal中直接運行已有的容器
Windows 10 20H2
安裝Docker
下載鏈接
可能出現的問題
內核需更新
根據舊版 WSL 的手動安裝步驟步驟 4后做就行:
Linux 內核更新包
適用于 x64 計算機的 WSL2 Linux 內核更新包
如果使用的是 ARM64 計算機,請下載 ARM64 包。 如果不確定自己計算機的類型,請打開命令提示符或 PowerShell,并輸入:systeminfo | find “System Type”。 Caveat: 在非英文版 Windows 上,你可能必須修改搜索文本,對“System Type”字符串進行翻譯。 你可能還需要對引號進行轉義來用于 find 命令。 例如,在德語版中使用 systeminfo | find ‘“Systemtyp”’。
將 WSL 2 設置為默認版本
打開 PowerShell,然后在安裝新的 Linux 發行版時運行以下命令,將 WSL 2 設置為默認版本:
wsl --set-default-version 2如果失敗,可能需要事先以管理員方式啟動cmd或powershell
使用
命令重置windows網絡設置
An error occurred
以管理員方式啟動cmd或powershell
使用
命令重置windows網絡設置
安裝鏡像
使用Microsoft Store安裝所選的 Linux 分發
打開Microsoft Store,并選擇你偏好的 Linux 分發版。
在分發版的頁面中,選擇“安裝”。
第一次啟動將會提示輸入用戶名和密碼。
手動安裝鏡像及文件夾的共享
Docker run 命令
摘自Docker run 命令 —— 菜鳥教程
docker run :創建一個新的容器并運行一個命令
語法
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]OPTIONS說明:
-a stdin: 指定標準輸入輸出內容類型,可選 STDIN/STDOUT/STDERR 三項;
-d: 后臺運行容器,并返回容器ID;
-i: 以交互模式運行容器,通常與 -t 同時使用;
-P: 隨機端口映射,容器內部端口隨機映射到主機的端口
-p: 指定端口映射,格式為:主機(宿主)端口:容器端口
-t: 為容器重新分配一個偽輸入終端,通常與 -i 同時使用;
–name=“名稱”: 為容器指定一個名稱;
–dns 8.8.8.8: 指定容器使用的DNS服務器,默認和宿主一致;
–dns-search example.com: 指定容器DNS搜索域名,默認和宿主一致;
-h “mars”: 指定容器的hostname;
-e username=“ritchie”: 設置環境變量;
–env-file=[]: 從指定文件讀入環境變量;
–cpuset=“0-2” or --cpuset=“0,1,2”: 綁定容器到指定CPU運行;
-m :設置容器使用內存最大值;
–net=“bridge”: 指定容器的網絡連接類型,支持 bridge/host/none/container: 四種類型;
–link=[]: 添加鏈接到另一個容器;
–expose=[]: 開放一個端口或一組端口;
–volume , -v: 綁定一個卷
以管理員方式啟動cmd或powershell
使用
拉取ubuntu14.04-ansible鏡像,創建一個名為robot_controller的容器并運行,其中D:\Work\Robot\Workspace\openRCio-stu為要共享文件夾的Windows下的路徑,/openRC為該文件夾映射在容器內的路徑,鏡像名為ansible/ubuntu14.04-ansible
如下圖可見,已成功共享該文件夾
Windows Terminal的安裝
在Microsoft Store中安裝就行。
設置里可設定外觀
打開Ubuntu
在Windows Terminal中直接運行已有的容器
在cmd/powershell中先使用
docker ps -a命令查看已有容器的ID
Windows Terminal新建一個配置,命令行為
此后便可在下拉菜單中直接啟動之前的容器
總結
以上是生活随笔為你收集整理的Linux虚拟机的替代品:Docker与WSL2上手笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js读取文件的方法
- 下一篇: 手动构建磁贴服务器(16.04.2 LT