shiyebushihua
发布于 2025-01-16 / 4 阅读
0
0

windows wsl2使用及安装docker,配置

wsl使用常见命令

# 安装发行版

wsl --install -d <Distribution Name>

# 查看在线商店镜像列表

wsl --list --online 或 wsl -l -o

# 查看已安装版本

wsl -l -v

# 删除wls版本

wsl --unregister Ubuntu-22.04

# 设置默认版本

wsl --set-default Ubuntu-20.04

# 常用基础配置

apt换源

bash <(curl -sSL https://linuxmirrors.cn/main.sh)

安装docker过程

wsl -d <你的linux名称>

# 删除原有垃圾数据

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

sudo apt-get remove docker-ce docker-ce-cli containerd.io

rm -r $HOME/.docker/desktop

sudo rm /usr/local/bin/com.docker.cli

sudo apt purge docker-desktop

# 安装

sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release

#添加 Docker 官方gpg key (可能国内现在访问会存在问题)

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 阿里源(推荐使用阿里的gpg KEY)

curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

#Docker官方源

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

#阿里apt源

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 更新源

sudo apt update

sudo apt-get update

# 安装

#docker本体

sudo apt install docker-ce docker-ce-cli containerd.io

#docker-compose

sudo apt install docker-compose

# docker命令补全

sudo apt-get install bash-completion

sudo curl -L https://raw.githubusercontent.com/docker/docker-ce/master/components/cli/contrib/completion/bash/docker -o /etc/bash_completion.d/docker.sh

source /etc/bash_completion.d/docker.sh

配置wsl2启动docker

添加文件

sudo touch /etc/fstab

更改网络适配器

sudo update-alternatives --set iptables /usr/sbin/iptables-legacy # for ipv4

sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy # for ipv6

systemctl status docker

测试systemctl状态

systemctl list-unit-files | grep docker

设置局域网访问,以及内存占用 可随时调节 重启wsl即可

在C:\Users\你的用户名中打开.wslconfig(没有就新建一个)

输入以下配置

[wsl2]

memory=4294967296

swap=2147483648

defaultVhdSize=214748364800

networkingMode=mirrored # 镜像网络模式

dnsTunneling=true #与主机共用dns

autoProxy=true # 与自动与主机共用代理

[experimental]

hostAddressLoopback=true

默认情况下,loopback的只有127.0.0.1(i.e., localhost),并且强制loopback。也就是说,在wsl2中开启的网络端口(例如通过8022开启ssh登录端口),会通过localhost映射到win11上,可以在win11宿主机使用ssh -p 8022 username@localhost登录,但是通过win11的局域网或公网IP是不能登录的。将这个选项设置为true之后,就可以在宿主机使用局域网或公网IP通过8022端口直接进行wsl2的ssh登录。

如果你有docker服务需要访问的话,在"/etc/docker/daemon.json"中添加如下

{

iptables": false

}

记得关闭防火墙windows/wsl的防火墙

这样子你就可以用windows的局域网ip/公网ip:wls(docker)的port来访问服务了

如果需要内网穿透也可以直接在windows下穿透127.0.0.1:port

或者windows下ddns,然后用v6访问

安装1panel

curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh


评论