admin管理员组文章数量:1530242
更新于20200711
这段时间微软推出的WSL2似乎很香,后面找个时间试下。目前已经支持GPU和docker,不过目前性能有待提高,还有一些小bug还在完善,喜欢折腾的小伙伴们可以关注下:https://www.zhihu/question/402055637
(原回答)
强调:WSL中使用docker要求系统为win10专业版或企业版
目录(更新于2019/09/22)
- 开启WLS所需功能
- 搜索安装Ubuntu18.04 LTS
- 更新软件源等(优化参考)
- Vim配色美化(新增)
- 配置并启用SSH
- 配置python和jupyter远程交互
- 解决WSL中的中文显示乱码问题
- WSL中Docker的安装与使用(使用Docker for Window10的方式)
- WSL中Docker的安装与使用(使用apt install的方式)
9.22更新内容(1):增加了第二种在WSL中安装与配置docker的方式(Docker for Window10,更推荐)
9.22更新内容(2):补充WSL中Docker的版本号:Docker version 17.03.2-ce, build f5ec1e2
9.22更新内容(3):解决WSL中的中文显示乱码问题
4.13更新内容:修改关于docker版本问题
4.14更新内容:增加常见问题以及解决方案
4.20更新内容:增加cannot connect to the Docker daemon解决方案
序言
看到一篇不错的Windows Subsystem for Linux参考文章,实践尝试了一下,最后遇到一些问题,并把过程完善了一下,增加了VIM的简单美化过程,还有贴出Xshell的使用方法和docker的安装方法(仅支持window10专业版),顺便把完整过程贴出来,万一以后用到呢,对吧。主要参考第一篇,侵删。
先说一下,我主要工作机器就是小米笔记本pro,日常工作都是使用公司实验室的GPU服务器,所以对于WSL,我的需求是在win10下能够轻量使用ubuntu即可。这个子系统下的ubuntu不支持CUDA GPU加速,所以打算用它跑GPU等等的小伙伴可能要失望了。
前段时间微软有个投票征求广大用户的意见,关于是否期待WSL支持GPU运行,到时候补充
不过可以选择Docker for window10、双系统或者是虚拟机,我的笔记本内存才8g,带不动虚拟机,日常工作使用实验室服务器。
参考1:不用装双系统,直接在 Windows 上体验 Linux:Windows Subsystem for Linux(基本参考这个)
参考2:开启win10下Ubuntu子系统的SSH服务(对比了一下)
参考3:Win10 bash on Ubuntu 下 vim 使用molokai配色(实测好用)
参考4:Xshell5及Xshell6 破解版软件(亲测可用)
正文部分
- 开启window功能
控制面板>程序和功能>启用或关闭window功能>勾选“适用于Linux的Windows子系统”
- 搜索并安装ubuntu18.04 LTS
在window自带的Cortana搜索Microsoft store,搜索ubuntu,选择18.04LTS,右上角点击“获取”,会下载大概210M左右的包,下载完会要求你重启。
- Window菜单中启动Ubuntu18.04 LTS
就像打开应用一样,点击打开即可,之后进入初始化(大约5分钟)。若等待太久的话,按下空格,有时候会卡住不更新进程(估计还是有点小bug)。之后设置用户名(不能首字母大写)、口令(密码),这里是完全独立于Window的账号。
查看一下基本的信息
查看linux内核版本
- 更新软件源(阿里云源)并更新软件
Licko补充: 基本与参考1的链接内容 一致,不过发现改用阿里云的源之后,发现会有一些问题,比如我卸载了VIM想重新装VIM,会出现apt报错,查了很久才知道:由第三方源下载更新的软件和官网源的软件依赖混合使用有时候会出现依赖错误 (阿里云源毕竟不是官方源),这时候就体现了备份原文件的重要性了,可以把阿里云源的删除,把备份的那份修改回原来的名字,接着"sudo apt update","sudo apt upgrade"即可。
#使用 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/ubuntu xenial main restricted #Added by software-properties
deb http://mirrors.aliyun/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun/ubuntu/ xenial universe
deb http://mirrors.aliyun/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun/ubuntu/ xenial multiverse
deb http://mirrors.aliyun/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical/ubuntu xenial partner
deb-src http://archive.canonical/ubuntu xenial partner
deb http://mirrors.aliyun/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun/ubuntu/ xenial-security universe
deb http://mirrors.aliyun/ubuntu/ xenial-security multiverse
开始更新软件镜像源和软件包
sudo apt update #更新软件源
sudo apt upgrade #更新软件包
上面过程中有时候会卡住不动,可以尝试按下空格,判断是否卡住
- 简单对vim进行美化
为什么要对vim美化?下面启动SSH看那个vim,我都看快瞎了。而且vim是一个功能强大的文字编辑器,后面很多时候会用到,但是默认的颜色配置特别瞎眼,所以简单找了一个配置教程。
参考这个博客:
Win10 bash on Ubuntu 下 vim 使用molokai配色blog.csdn简单搞定,具体如下:
mkdir .vim
cd .vim
git clone https://github/tomasr/molokai.git
cp -rf molokai/colors/ ./colors
vim vimrc
colorscheme molokai
- 启用 SSH 并使用Xshell6客户端登录
平时工作原因需要用到远程连接服务器,就需要用到SSH客户端,有putty、Multiputty(只是能够开多点窗口的putty罢了)、Xshell,最近我换成Xshell6了,除了它好看点,重点在于它可以设置半透明!!!因为日常工作过程无法避免频繁从纯白色的浏览器和背景色黑不溜秋的界面来回切换,长时间这样会折磨眼睛。它让我想起Ubuntu令人眼前一亮的下拉式终端Guake Terminal,说多了,回正题。
-
- 启用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 表示使用帐号密码方式登录
之后启动SSH并检查状态,输出running即正确。
sudo
- 使用Window10的cmd登录
- win键>windows设置>应用和功能中的“管理可选功能”
- 查看列表是否有“OpenSSH客户端”,若无则添加,若有则进入下一步.
- “win键+r”输入cmd进入cmd比如上面的案例,输入“ssh root@xxx.x.x.x -p xxxx”即可
- 使用Xshell6客户端登录(有个工具方便后续WSL中使用docker)
Xshell6是需要钱的,不过谢谢万能的网友,知乎不给放链接,自行百度即可。
下载之后一路安装即可,有个什么用户和机构填写的,随便写就行。后面启动Xshell6,接着找到右上角点那个+号>新建会话>进入“连接”界面填信息>点击“用户身份验证”输入root和密码即可,具体如下(图是参考1里面的)
名称:WSL(这个随便填)
协议:SSH
主机:127.0.0.1(本机环回接口)
端口号:8022(按刚刚设置过的输)
Xshell6有两个挺好的快捷键,Alt+r是半透明,Alt+Enter是全屏,效果如下:
- 使用Jupyter进行远程交互(py2和py3)
介绍一种最快速最直接的方式,但是ubuntu没有自带pip,需要先安装python-pip工具才能对python模块进行管理与安装。
sudo apt install python-pip #安装的python2的pip
sudo apt install python3-pip #安装的python3的pip
sudo pip3 install jupyter #用python2安装jupyter
pip3 install ipykernel #使得jupyter内核可以同时拥有python2和python3
jupyter notebook --allow-root
接着,复制生成的“http”那段在浏览器打开即可。
大功告成,而且可以在jupyter的配置文件中设置启动工作目录,比如我的是"cd /mnt/d",每次打开jupyter就会进入我的D盘目录,类似于docker的共享目录。
解决WSL的中文乱码问题
实测可用,参考:https://blog.csdn/weixin_41921520/article/details/97940040
先安装以下软件包:
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
Docker 配置与安装(方法一,docker for windows,推荐)
首先说明一个大坑, 仅支持window10专业版系统,或是已安装docker for window10,否则无法启动daemon守护进程,就算一步一步到最后没有任何报错,也无法启动docker。我一直侥幸以为能够找到万能网友的解决方法,或者是自己能够尝试得到解决方案,后来发现除了上面条件满足才能实现。
补一下之前后续尝试过的方式,这种方式更加简单便捷,也更稳!
- 去官网下载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桌面版的介绍和教程
- Docker的配置与安装(方法二,不推荐,这种是常规Linux里面的安装方式)
主要参考Docker官网关于linux中安装docker的安装教程和这个
首先说明一个大坑, 仅支持window10专业版系统,或是已安装docker for window10,否则无法启动daemon守护进程,就算一步一步到最后没有任何报错,也无法启动docker。我一直侥幸以为能够找到万能网友的解决方法,或者是自己能够尝试得到解决方案,后来发现除了上面条件满足才能实现。
安装步骤
- 将软件源修改为阿里云的源(上文有修改过,不再赘述)
简单说明一下,尽量一开始就先将ubuntu的软件源修改为阿里云的源,避免安装的各种软件来自不同源,不然你一个sudo apt-get upgrade和update就把软件都弄混乱了,会出现版本报错还是其他奇怪的错误。
2. 先卸载旧版本的docker
sudo apt-get remove docker docker-engine docker.io
3. 安装必要的一些系统工具
sudo apt-get update
sudo apt-get install
apt-transport-https
ca-certificates
curl
software-properties-common
4. 安装GPG证书
#别忘了最后的“-”
curl -fsSL https://download.docker/linux/ubuntu/gpg | sudo apt-key add -
5. 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
6. 列出可用版本
sudo apt-cache madison docker-ce
7. 更新并安装 Docker-CE
sudo apt-get update
sudo apt-get install docker-ce=17.03.2~ce-0~ubuntu-xenial
注意:我这里的图是最新版18.06.3版本,最近在服务器也是装这个版本没有问题。如果出现问题,可以尝试换成对应旧一点的版本。
2019/09/22 补充WSL中docker的版本号:Docker version 17.03.2-ce, build f5ec1e2
8. 开启docker服务,查看docker状态
sudo service docker start
sudo service docker status
或者是以下方法也可以
systemctl status docker
9. 拉取第一个镜像,测试docker
docker run hello-world
若成功出现上图,说明大功告成!
使用docker的命令,查看现有镜像和正在运行的容器
docker images
docker ps
10. 加载阿里云加速器
加载阿里云服务器(进阿里云去注册),注意:"registry-mirrors"输入自己的加速器地址
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxxxx.mirror.aliyuncs"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
后面的WSL图形化我就没去尝试了,因为这个ubuntu是不支持CUDA GPU加速的,而自己小米pro有双系统,所以没打算用这个玩太多,还不如选择Docker for Window10来玩,所以有空再玩啦!
Docker常见问题
1、docker ps报错连接失败
通常先看看docker的守护进程开启没有,再看看是否当前用户在docker组
参考
# 先查看docker的状态,若不是running则start即可
sudo systemctl status docker
# 若不是running则start即可
sudo systemctl start docker #未启动则启动
sudo systemctl enable docker #激活开机自启动
通常是因为没有激活开机自启动docker,
若docker的状态是running,那就要检查当前用户是否在docker组。若不再,直接将当前用户加入docker组即可
# 使用命令“groups”,查看当前用户所在组
groups
# 其中${USER}写用户名,将该用户加入docker组
sudo gpasswd -a ${USER} docker
sudo gpasswd -a LChuang docker
2、docker 创建镜像失败(这个问题无视,因为WSL目前并不支持CUDA)
原因:cuda版本和英伟达驱动不兼容
参考这个:https://juejin.im/post/5c91a766e51d453f3e50b68c
3、启动镜像和容器失败
检查是否设置了--name,然后已经存在相同的名字
其他常见问题以及解决方案
一、用管理员权限还是出现cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running
先确定是否为window10专业版,其次打开window10的Docker> Settings > General: “Expose daemon on tcp://localhost:2375 without TLS”.
参考这篇
版权声明:本文标题:docker登录密码错误_【WSL+Docker】新手Win10下的WSL Ubuntu18并使用Docker(两种方式)... 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1726377127a1067876.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论