【WSL+Docker】Win10/11下的WSL Ubuntu18.04 LTS 并使用Docker(两种方式)

1# 开启window功能

 控制面板>程序和功能>启用或关闭window功能>勾选“适用于Linux的Windows子系统”和“虚拟机平台“

windows 10  

【WSL+Docker】Win10/11下的WSL Ubuntu18.04 LTS 并使用Docker(两种方式)_第1张图片

windows 11 

设置>应用>可选应用>更多windows功能>勾选“适用于Linux的Windows子系统”和“虚拟机平台“

【WSL+Docker】Win10/11下的WSL Ubuntu18.04 LTS 并使用Docker(两种方式)_第2张图片  ​​​​​​2# 搜索并安装ubuntu18.04 LTS​​​​​​​

在window自带的搜索Microsoft store,搜索ubuntu,选择18.04LTS,右上角点击“获取”,会下载大概210M左右的包,下载完打开即可。 

【WSL+Docker】Win10/11下的WSL Ubuntu18.04 LTS 并使用Docker(两种方式)_第3张图片

​​​​​​​3# Window菜单中启动Ubuntu18.04 LTS

【WSL+Docker】Win10/11下的WSL Ubuntu18.04 LTS 并使用Docker(两种方式)_第4张图片

 查看一下基本的信息

查看linux内核版本
uname -r

查看系统版本
cat /etc/lsb-release

查看本地磁盘内存情况(可见C盘、D盘)
df -h

4# ​​​​​​​更新软件源(阿里云源)并更新软件

#使用 root 权限登录,后续输入密码
sudo -i

#接下来备份当前源,输入以下命令
cp /etc/apt/sources.list /etc/apt/sources.list.old 

#这个sources.list文件就是源文件,删除该文件,重新写一个
rm /etc/apt/sources.list
vim /etc/apt/sources.list

复制下面内容,然后单击右键粘贴进去即可,之后按ESC,输入wq保存并退出。

# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted
  deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
  deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
  deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
  deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
  deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
  deb http://mirrors.aliyun.com/ubuntu/ xenial universe
  deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
  deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
  deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
  deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
  deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
  deb http://archive.canonical.com/ubuntu xenial partner
  deb-src http://archive.canonical.com/ubuntu xenial partner
  deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
  deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
  deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
  deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse

 开始更新软件镜像源和软件包

sudo apt update      #更新软件源
sudo apt upgrade     #更新软件包

上面过程中有时候会卡住不动,可以尝试按下空格,判断是否卡住

6# 启用 SSH 并使用SecureCT客户端登录

​​​​​​​启用SSH所需设置

#设置root的口令(密码),用作后续登陆使用
sudo passwd root

#安装openssh-server(似乎ubuntu自带已安装)
sudo apt install openssh-server

#备份很重要
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

#使用vim进行编辑,按i进入insert模式
sudo vim /etc/ssh/sshd_config

service ssh start             #启动SSH服务
service ssh status            #检查状态

在vim中分别找到并对应修改四处,修改后ESC,输入wq保存退出,具体如下:
Port = 8022
ListenAddress 0.0.0.0        # 如果需要指定监听的IP则去除最左侧的井号,并配置对应IP,默认即监听PC所有IP
PermitRootLogin yes           # 如果你需要用 root 直接登录系统则此处改为 yes
PasswordAuthentication yes    # 将 no 改为 yes 表示使用帐号密码方式登录

【WSL+Docker】Win10/11下的WSL Ubuntu18.04 LTS 并使用Docker(两种方式)_第5张图片 之后启动SSH并检查状态,输出running即正确。

sudo service ssh start             #启动SSH服务
sudo service ssh status            #检查状态
sudo systemctl enable ssh          #开机自动启动ssh命令

使用SecureCRT客户端登录 

【WSL+Docker】Win10/11下的WSL Ubuntu18.04 LTS 并使用Docker(两种方式)_第6张图片

7# 解决WSL的中文乱码问题

安装以下软件包:

sudo apt-get install language-pack-zh-hans

打开以下文件

sudo vim /etc/environment

在最后写入以下内容,保存

LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh:en_US:en"

在/var/lib/locales/supported.d/,新建local文件

sudo vim /var/lib/locales/supported.d/local

写入以下,并保存:

en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
zh_CN.GBK GBK
zh_CN GB2312

执行以下命令:

sudo locale-gen

接着,关闭WSL界面再开启即可,不用关机,实测可用。

其他:解决中文空格乱码问题

sudo apt-get install fonts-droid-fallback ttf-wqy-zenhei ttf-wqy-microhei fonts-arphic-ukai fonts-arphic-uming

8#  Docker 配置与安装(方法一,docker for windows,推荐)

​​​​​​​

1.去官网下载Docker for window桌面版

【WSL+Docker】Win10/11下的WSL Ubuntu18.04 LTS 并使用Docker(两种方式)_第7张图片

 

2. 安装docker for windows时,可选勾选第二个(当时没截图);之后安装完,需要注册并登陆docker账号;

3. 接着用window的powershell测试docker for windows(第三步和第四步忘记顺序了,抱歉)

【WSL+Docker】Win10/11下的WSL Ubuntu18.04 LTS 并使用Docker(两种方式)_第8张图片

4. 将container设置为“Linux container”

介绍一下window container 和Linux container,具体参考这篇介绍

windows container 是相当于 docker 在 linux 下的原生实现,linux container 是通过 Hyper-V 托管了一个小型虚拟机以实现 linux 环境。
如果你的磁盘不够大网速不够好, 不建议直接在自己电脑上尝试 windows container,windows container 大部分是基于 windows-sever 的镜像,动则十几个G,下载镜像都不一定能下载成功。

成功之后再去将container设置为“switch to Linux container”,右键点击桌面右下角docker的鲸鱼小图标,确认第6行是否已经显示为"switch to Windows containers",这说明已经在使用Linux container。否则,会显示为“switch to Linux containers”。

【WSL+Docker】Win10/11下的WSL Ubuntu18.04 LTS 并使用Docker(两种方式)_第9张图片

5. 打开setting的General,勾选最后一项,非常重要!!!否则将不能在WSL中使用docker

【WSL+Docker】Win10/11下的WSL Ubuntu18.04 LTS 并使用Docker(两种方式)_第10张图片

6. 在WSL中测试docker

使用我们前面配置好的Xshell打开WSL,测试docker

【WSL+Docker】Win10/11下的WSL Ubuntu18.04 LTS 并使用Docker(两种方式)_第11张图片

7. 设置阿里云镜像加速器

加载国内的阿里云加速器,没有的话需要自己进阿里云去注册),有助于更快速的拉取镜像等等。注意:"registry-mirrors"输入自己的加速器地址

【WSL+Docker】Win10/11下的WSL Ubuntu18.04 LTS 并使用Docker(两种方式)_第12张图片

8. 其他设置

在Shared Drives,你可以设置磁盘共享,比如D盘,你使用-v的方式挂载你的D盘,启动一个镜像后,在容器中就可以访问你D盘的文件,以及docker cp实现文件交互。

其他的Advanced、Network等我都是使用默认设置,想要了解更多可以去docker官网查看docker for window桌面版的介绍和教程

9# Docker的配置与安装(方法二,不推荐,这种是常规Linux里面的安装方式)

 

 1. 先卸载旧版本的docker

sudo apt-get remove docker docker-engine docker.io

 2. 更新一下apt-get源

sudo apt-get update

  3. 安装GPG证书

#别忘了最后的“-”
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
 

  4. 写入软件源信息

sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

  5. 列出可用版本

sudo apt-cache madison docker-ce

【WSL+Docker】Win10/11下的WSL Ubuntu18.04 LTS 并使用Docker(两种方式)_第13张图片

  6. 更新并安装 Docker-CE

sudo apt-get update
sudo apt-get install docker-ce=17.03.2~ce-0~ubuntu-xenial

【WSL+Docker】Win10/11下的WSL Ubuntu18.04 LTS 并使用Docker(两种方式)_第14张图片

注意:我这里的图是最新版18.06.3版本,最近在服务器也是装这个版本没有问题。如果出现问题,可以尝试换成对应旧一点的版本。

7. 开启docker服务,查看docker状态

sudo service docker start
sudo service docker status

使用docker的命令,查看现有镜像和正在运行的容器

docker images
docker ps

 9# Docker常见问题

1)docker is not running

i) 启用 VirtualMachinePlatform 组件

windows+x+a 打开 PowerShell ,输入以下命令启用 VirtualMachinePlatform(虚拟机平台)组件

Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

保守起见,你也可以同时启用 Hyper-V 组件,官方的文档里没说要启用它

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

注:启用组件之后,需要重启电脑才会生效

ii) 启动 wsl 2

注:如果你还没有安装过wsl linux 子系统,则先要开启wsl功能, 在 PowerShell 中执行下面命令,然后重启电脑即可

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

可以先用 wsl -l -v 来查看当前的wsl版本。如果显示的是版本是1,则执行 wsl --set-default-version 2 来设置默认版本;

如果提示“错误: 0x1bc”或其他异常,可以试试更新 wsl linux内核版本

传送门:旧版 WSL 的手动安装步骤 | Microsoft Docs,下载 wsl_update_x64.msi 程序并安装

【WSL+Docker】Win10/11下的WSL Ubuntu18.04 LTS 并使用Docker(两种方式)_第15张图片

更新已有分发版本设置为 WSL 2

# 查看已有linux分发版本
wsl --list --verbose
# 设置分发版本为 wsl 2
wsl --set-version  

iii) 以管理员身份运行Ubuntu18.04 LTS

【WSL+Docker】Win10/11下的WSL Ubuntu18.04 LTS 并使用Docker(两种方式)_第16张图片

完美解决。 

2)sshd启动报错Could not load host key

生成秘钥

ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -t rsa -f /etc/ssh/ssh_host_dsa_key
ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key

一直按确认键就行。

【WSL+Docker】Win10/11下的WSL Ubuntu18.04 LTS 并使用Docker(两种方式)_第17张图片 附录:

a) 将当前用户加入docker组

# 使用命令“groups”,查看当前用户所在组
groups
​
# 其中${USER}写用户名,将该用户加入docker组
sudo gpasswd -a ${USER} docker
sudo gpasswd -a LChuang docker

b)Ubuntu中root用户和user用户的相互切换 

(1)从user用户切换到root用户

当我们登录Ubuntu时,默认进入的是user,当我们需要执行一些root才能执行的权限时,经常要在命令前加上sudo授权,想要直接切换到root用户,只要简单执行如下命令:

sudo su

2)从root用户切回user用户

想要从root用户切回 user用户只需要执行命令:

su user(user是你自己安装时候的用户名)

或者直接输入exit,也可以按ctrl+D能退出到user用户 

 

你可能感兴趣的:(ubuntu,windows,docker)