当前位置:   article > 正文

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

wsl ubuntu docker

1# 开启window功能

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

windows 10  

windows 11 

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

  ​​​​​​2# 搜索并安装ubuntu18.04 LTS​​​​​​​

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

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

 查看一下基本的信息

  1. 查看linux内核版本
  2. uname -r
  3. 查看系统版本
  4. cat /etc/lsb-release
  5. 查看本地磁盘内存情况(可见C盘、D盘)
  6. df -h

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

  1. #使用 root 权限登录,后续输入密码
  2. sudo -i
  3. #接下来备份当前源,输入以下命令
  4. cp /etc/apt/sources.list /etc/apt/sources.list.old
  5. #这个sources.list文件就是源文件,删除该文件,重新写一个
  6. rm /etc/apt/sources.list
  7. vim /etc/apt/sources.list

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

  1. # deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted
  2. deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
  3. deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
  4. deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
  5. deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
  6. deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
  7. deb http://mirrors.aliyun.com/ubuntu/ xenial universe
  8. deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
  9. deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
  10. deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
  11. deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
  12. deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
  13. deb http://archive.canonical.com/ubuntu xenial partner
  14. deb-src http://archive.canonical.com/ubuntu xenial partner
  15. deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
  16. deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
  17. deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
  18. deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse

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

  1. sudo apt update #更新软件源
  2. sudo apt upgrade #更新软件包

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

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

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

  1. #设置root的口令(密码),用作后续登陆使用
  2. sudo passwd root
  3. #安装openssh-server(似乎ubuntu自带已安装)
  4. sudo apt install openssh-server
  5. #备份很重要
  6. sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
  7. #使用vim进行编辑,按i进入insert模式
  8. sudo vim /etc/ssh/sshd_config
  9. service ssh start #启动SSH服务
  10. service ssh status #检查状态
  11. 在vim中分别找到并对应修改四处,修改后ESC,输入wq保存退出,具体如下:
  12. Port = 8022
  13. ListenAddress 0.0.0.0 # 如果需要指定监听的IP则去除最左侧的井号,并配置对应IP,默认即监听PC所有IP
  14. PermitRootLogin yes # 如果你需要用 root 直接登录系统则此处改为 yes
  15. PasswordAuthentication yes # 将 no 改为 yes 表示使用帐号密码方式登录

 之后启动SSH并检查状态,输出running即正确。

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

使用SecureCRT客户端登录 

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

安装以下软件包:

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

打开以下文件

sudo vim /etc/environment

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

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

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

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

写入以下,并保存:

  1. en_US.UTF-8 UTF-8
  2. zh_CN.UTF-8 UTF-8
  3. zh_CN.GBK GBK
  4. 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桌面版

 

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

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

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”。

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

6. 在WSL中测试docker

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

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

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

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证书

  1. #别忘了最后的“-”
  2. 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

  6. 更新并安装 Docker-CE

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

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

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

  1. sudo service docker start
  2. sudo service docker status

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

  1. docker images
  2. 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 2

  1. # 查看已有linux分发版本
  2. wsl --list --verbose
  3. # 设置分发版本为 wsl 2
  4. wsl --set-version <distribution name> <versionNumber>

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

完美解决。 

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

生成秘钥

  1. ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
  2. ssh-keygen -t rsa -f /etc/ssh/ssh_host_dsa_key
  3. ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
  4. ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key

一直按确认键就行。

 附录:

a) 将当前用户加入docker组

  1. # 使用命令“groups”,查看当前用户所在组
  2. groups
  3. # 其中${USER}写用户名,将该用户加入docker组
  4. sudo gpasswd -a ${USER} docker
  5. 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用户 

 

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/385383
推荐阅读
相关标签
  

闽ICP备14008679号