【保姆级教程】WSL+CentOS7+Docker安装及配置
目录
- 前言
- 安装WSL
- 安装CentOS7
- 解决一些小问题
- 安装和配置Docker
- 安装Docker
- Docker配置代理
前言
- 本文旨在总结WSL上安装CentOS7,并安装配置Docker时遇到的问题。
- 如果你遇到了相关的问题,本篇文章值得一看。
安装WSL
-
该部分可以参考官方教程安装 WSL | Microsoft Learn。
-
如果认为官方的太长,请看一下步骤。
-
在管理员模式下打开 PowerShell 或 Windows 命令提示符,方法是按下
Win+R
,然后输入cmd
,再按下CTRL+SHIFT+ENTER
。 -
在命令行中输入如下命令:
wsl --install
-
然后重启计算机即可安装成功。
-
验证安装是否成功:在命令行中输入
wsl -l -v
,然后回车,如果出现对应的版本信息则说明安装成功。如果没出现对应信息,则输入命令wsl --update
进行更新,然后重复上述步骤。
-
安装CentOS7
CentOS7地址:Release CentOS 7.9-2211 · mishamosher/CentOS-WSL
-
点击上述地址跳转到对应的页面,然后下载
CentOS7.zip
文件。下载完成之后解压,将解压后的文件放到你想安装CentOS7的位置,然后点击CentOS7.exe
即可安装。 -
在命令中输入命令
wsl --list --verbose
,如果出现类似如下信息说明安装成功。NAME STATE VERSION * CentOS7 Running 2
解决一些小问题
-
在命令行输入命令
wsl -d CentOS7
修改默认系统,这样以后只需要输入wsl
即可进入系统。 -
开启systemd:Ubuntu发行版默认安装已启用systemd,而其它Linux发行版上默认还是init,需要手动启用才行。
ps --no-headers -o comm 1 init(CentOS7)
解决办法:进入CentOS7系统后,输入命令
echo -e "[boot]\nsystemd=true" | sudo tee -a /etc/wsl.conf
。接下来要先用wsl -t centos7
停掉centos7
,再启动centos7
才生效。验证方法:再次输入
ps --no-headers -o comm 1
,出现如下所示信息即为成功。ps --no-headers -o comm 1 systemd
-
对于命令行不高亮显示问题,按顺序解决。
- 在命令行输入
vi ~/.bashrc
。 - 然后在文件末尾追加
export PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h \[\e[36;40m\]\w\[\e[0m\]]\\$ "
,然后保存。(vim怎么用请百度) - 最后执行
source ~/.bashrc
生效。
- 在命令行输入
安装和配置Docker
安装Docker
-
这个真的是一坨,配了一个下午才解决,也是因此让我写了这篇文章。 -
安装Docker的命令:按顺序在命令行输入即可。出现错误往下看。
yum -y remove docker* yum install -y yum-utils yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum install docker-ce docker-ce-cli containerd.io -y // 启动docker systemctl start docker // 开机启动 systemctl enable docker
-
如果上述命令你没有出现错误,恭喜你,下面这一小段你可以跳过了。
-
出现错误的原因大概率是拉取资源超时的问题,这个问题可以通过换源解决。如果是启动Docker命令出现错误,罚你重新看一遍文章。
-
以下镜像源随意替换一个。
-
阿里云源:
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
-
清华大学源:
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.tuna.tsinghua.edu.cn/repo/Centos-7.repo
-
-
如果替换的是否报错,大概意思是说你的系统没有安装wget的话,则将
wget -O
替换为curl -o
。 -
清理yun缓存
sudo yum clean all sudo yum makecache yum -y install update
-
验证新源是否可用,如果显示的源信息和你选择的国内源匹配,说明更换成功。
sudo yum repolist
-
测试下载:随意下载一个软件包(这里以下载vim为例),如果安装没有出错,说明换源成功。
sudo yum install vim -y
-
Docker配置代理
-
因为众所周知的原因,我们国内使用docker下载镜像没办法下载了
-
有四种办法下载镜像:
-
最简单的,但是穷:云服务器可以使用内部docker源下载镜像,比如腾讯云。
-
没试过:在能下载镜像的地方下载好,然后在不能下载镜像的地方导入。
docker save -o mysql_5_7.tar mysql:5.7 docker load < mysql_5_7.tar
-
docker配置代理
-
如果不进行任何配置,直接执行
docker pull mysql:5.7
,大概率会遇到以下错误:- docker: Error response from daemon: Get “https://registry-1.docker.io/v2/”: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).See ‘docker run --help’.
- Error response from daemon: Get “https://registry-1.docker.io/v2/”: dial tcp ip: connect: connection refused
-
创建配置文件
sudo mkdir -p /etc/systemd/system/docker.service.d sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf
-
在文件中添加代理:IPv4地址在Windows的命令输入命令
ipconfig
即可查看。端口号则取决于你的代理软件,clash for windows
的默认端口号为7890。注意:代理软件的系统代理类型需要更改为http,并且需要开启代理和允许局域网[Service] Environment="HTTP_PROXY=http://[你的IPv4地址]:[你的代理端口号]" Environment="HTTPS_PROXY=http://[你的IPv4地址]:[你的代理端口号]"
-
重启Docker,并设置开机自动启动。
sudo systemctl daemon-reload sudo systemctl restart docker systemctl enable docker
-
查看环境变量,如果出现你配置的代理说明成功。
sudo systemctl show --property=Environment docker
-
测试是否可以成功下载。
docker pull mysql:5.7
一般来说已经可以了,但是作者是不一般的。所以还尝试了下面这个方法,最后终于成功了。
-
-
配置加速地址(本质上还是换源,因此有过期的风险,届时需要重新配置)
如果你也是尝试方法3失败了,请记得删除方法3中增加的内容。
-
创建或者修改
/etc/docker/daemon.json
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<EOF { "registry-mirrors": [ "https://docker.1ms.run", "https://hub.rat.dev", "https://docker.1panel.live" ] } EOF // 重新加载配置文件 sudo systemctl daemon-reload // 请注意你的Docker服务是否方便重启,如果不方便请忽略下一条命令 sudo systemctl restart docker // 不方便重启Docker可以使用临时加速地址 docker pull docker.1panel.live/library/mysql:5.7
-
如果成功拉取则大功告成。
-
-
-
此外网上还有其他方法,也有人成功了,因此在下面给出供大家参考。
-
修改DNS服务配置
// 进入对应文件 vi /etc/resolv.conf // 将下面的内容复制到对应位置,系统会自动生成一个,在前面加上'#'注释 nameserver 8.8.8.8 nameserver 114.114.114.114
-