Linux
安装
安装依赖,更新系统并安装必要工具
sudo apt update && sudo apt upgrade -y
sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release
Ubuntu 中安装 Docker 以及 Docker Compose
sudo apt install docker.io docker-compose
安装完成后,你可以使用以下命令检查安装的版本
docker -v
要 卸载以前的 Docker,请使用以下命令
sudo apt remove docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc
Windows
windows 下使用 linux 安装docker 环境,并且支持 powershell 支持运行 linux 相关命令。
系统虚拟化
启用虚拟化
任务管理器(CTRL+Shift+Esc), 选择性能,查看CPU虚拟化,确认是否已启用(默认启用)。

启用Hyper-v并开启虚拟任务
按住键盘Win+R,输入control





安装WSL
检验安装
win+R,输入cmd,按回车键

终端中输入命令wsl,查看是否有安装:
若没有安装:

若已经安装:

安装WSL
更新最新安装方式,直接下载安装包双击安装即可,下载地址:
点此下载WSL安装包
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
如果已经安装,可使用如下命令升级
wsl --update
安装 Ubuntu
打开 microsoft store 搜索wsl 选择Ubuntu 22.04.3 LTS 点击免费下载



然后进入安装过程,输入自动以linux用户名

输入自定义用户密码

完成后,查看 Ubuntu 版本

Docker安装
# powershell 中运行 wsl 进入 linux 环境进行 docker 安装
# 安装依赖,更新系统并安装必要工具:
sudo apt update && sudo apt upgrade -y
sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release
# Ubuntu 中安装 Docker 以及 Docker Compose
sudo apt install docker.io docker-compose
# 安装完成后,你可以使用以下命令检查安装的版本
docker -v
镜像目录调整
问题:
随着pull的镜像增多,C盘空间被很快耗尽。
因为windows使用的是WSL2的版本,所以docker desktop在安装的时候默认创建两个 wsl子系统。
使用命令 wsl -l -v --all
查看

docker-desktop 是存放程序的
docker-desktop-data 是存放镜像的
解决:
删除所有的 image/container/wsl/hyperv
数据:


导出wsl子系统镜像:
wsl --export docker-desktop docker-desktop.tar
wsl --export docker-desktop-data docker-desktop-data.tar
删除现有的wsl子系统:
wsl --unregister docker-desktop
wsl --unregister docker-desktop-data
重新创建wsl子系统:
wsl --import docker-desktop E:\dockerData\docker-desktop\ docker-desktop.tar
wsl --import docker-desktop-data E:\dockerData\docker-desktop-data\ docker-desktop-data.tar
重新运行 docker desktop,然后pull一个镜像,C盘不会变大了。
wsl常用命令
# 查看wsl版本
wsl --version
# 关闭wsl
wsl --shudown
# 查询是否关闭,state显示为stopped
wsl -l -v
# 启动wsl
wsl
# 卸载适用于 Linux 的 Windows 子系统包
wsl --uninstall
# 查看安装的所有linux子系统
wsl --list --verbose
# 进入linux
wsl -d Name(上步查出的名称)
## 直接 wsl 可以进入默认的系统,exit 退出wsl
# 卸载linux子系统
wsl --terminate Name
# 取消注册分发版并删除根文件系统
wsl --unregister Name
# 账号提权
sudo -s 或 su root

wsl 网络配置
使用 wsl 安装的 Ubuntu 系统,局域网其它主机无法访问,需要配置宿主机端口转发。
查看 Ubuntu IP
PS C:\Users\Administrator> wsl hostname -I
172.31.32.124 172.17.0.1
# 也可以进入 Ubuntu 查看
root@STXXC:/mnt/d/360MoveData/Users/Administrator/Desktop# ifconfig

退出 wsl , ping 该ip地址,查看网络连接是否畅通(注:要先使用wsl启动Ubuntu)
在宿主机上,使用此IP访问,可以直接访问容器。
PS C:\Users\Administrator> ping 172.31.32.124
或者
PS C:\Users\Administrator> curl 172.31.32.124
正在 Ping 172.31.32.124 具有 32 字节的数据:
来自 172.31.32.124 的回复: 字节=32 时间<1ms TTL=64
来自 172.31.32.124 的回复: 字节=32 时间<1ms TTL=64
再根据该ip地址,在windows端的命令行界面,配置ip+端口映射关系(注:wsl 重启,Ubuntu IP 会发生变化,重新后重新修改IP端口转发)
# listenport=外部宿主机端口
# connectport=内部wsl虚拟机端口
# connectaddress=执行wsl hostname -I 查看的ip地址
# 如下边,将宿主机的 80 8090 转发至 wsl 中的 docker 容器中
netsh interface portproxy add v4tov4 listenport=80 listenaddress=0.0.0.0 connectport=80 connectaddress=172.25.10.171
netsh interface portproxy add v4tov4 listenport=8090 listenaddress=0.0.0.0 connectport=8090 connectaddress=172.25.10.171
至此,局域网中主机即可通过 宿主机 IP + 对应端口 访问docker 容器
参考地址:https://blog.csdn.net/visket2008/article/details/142822361
wsl 使用root登录
wsl 进入 Ubuntu 时,默认使用创建的用户进行登录,部分操作需要使用 sudo -s
提权,可修改为 root 直接登录,免去提权流程
# 编辑 wsl.conf
sudo vi /etc/wsl.conf
# 增加如下内容
[user]
default=root # 系统登录默认用户
windows 安装包安装
下载地址:阿里云docker下载
https://mirrors.aliyun.com/docker-toolbox/windows/docker-for-windows/

安装完成后,重启电脑 ,打开 docker 即可
docker 镜像
# 增加镜像地址
vi /etc/docker/daemon.json
# 放入如下内容
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://noohub.ru",
"https://huecker.io",
"https://dockerhub.timeweb.cloud",
"https://0c105db5188026850f80c001def654a0.mirror.swr.myhuaweicloud.com",
"https://5tqw56kt.mirror.aliyuncs.com",
"https://docker.1panel.live",
"http://mirrors.ustc.edu.cn/",
"http://mirror.azure.cn/",
"https://hub.rat.dev/",
"https://docker.ckyl.me/",
"https://docker.chenby.cn",
"https://docker.hpcloud.cloud",
"https://docker.m.daocloud.io"
]
}
# 重启docker
systemctl restart docker
# 查看docker信息
docker info