WSL2-ubuntu 安装Docker
配置Systemd
启动WSL并进入Ubuntu实例。
查看WSL配置文件,cat /etc/wsl.conf 确保在引导选项中systemd被设置为true。若尚未设置,需在配置中添加:
1
2[boot]
systemd = true执行wsl.exe shutdown命令,让WSL重启以启用systemd。
重新进入Ubuntu实例后,通过systemctl status检查systemd状态,可看到控制组的树形输出,其中会列出所有进程及其PID,确认系统功能正常。通过systemctl list-unit-files –type=service可发现当前无Docker服务运行。
安装Docker
访问Docker官网,在文档中找到适用于Ubuntu的快速安装脚本。
首先通过curl下载脚本:
1
curl -fsSL https://get.docker.com -o get-docker.sh
执行脚本安装Docker:
1
sudo sh get-docker.sh
等待20秒
安装完成后,可通过docker version查看Docker引擎的客户端版本、服务器版本,以及引擎、containerd、runc和Docker init的具体版本信息。
以非root用户运行Docker
- 直接运行docker run hello-world会遇到权限拒绝错误;
- 执行id命令,确认当前用户不在docker组中。若需解决:
- 执行groupadd docker(若组已存在,此命令无影响)。
- 执行`usermod -aG docker $USER,将当前用户添加到docker组。
- 执行newgrp docker刷新用户组权限。
- 再次执行docker run hello-world,系统会拉取镜像并显示“hello from docker”,确认非root用户已可正常运行Docker。
网络问题
docker 的代理设置:
1
sudo mkdir -p /etc/docker
设置加速器(可用加速器经常变化,网络搜索最新的服务器):
1
2
3
4
5
6
7
8
9sudo tee /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://docker.xuanyuan.me",
"https://docker.m.daocloud.io",
"https://docker.1ms.run"
]
}
EOF重启docker服务,使其生效:
1
sudo systemctl daemon-reload && sudo systemctl restart docker
配置Docker随系统启动
借助此前配置的systemd,我们可以让Docker在WSL启动时自动运行:
启用Docker服务自启动:
1
sudo systemctl enable docker.service
启用containerd服务自启动:
1
sudo systemctl enable containerd.service
通过systemctl status docker和systemctl status containerd检查服务状态,若显示“enabled”,则表示已成功配置为开机启动。
安装Docker Compose
再次访问Docker官网文档,执行以下命令:
1
2sudo apt-get update
sudo apt-get install docker-compose-plugin检查Docker Compose版本(示例版本为2.3.6.2):
1
docker compose version
验证功能:在测试项目中执行docker compose up,启动后访问localhost:8000,刷新页面可看到Flask应用正常运行。
1
2测试项目构建方法,官网链接:
https://docs.docker.com/compose/gettingstarted/测试项目推荐的Dockerfile配置(官网配置有网络问题,耗时很长):
1
2
3
4
5
6
7
8
9
10
11
12
13
14# syntax=docker/dockerfile:1
FROM python:3.10-slim
WORKDIR /app
RUN echo "deb http://mirrors.aliyun.com/debian bookworm main" > /etc/apt/sources.list && \
echo "deb http://mirrors.aliyun.com/debian bookworm-updates main" >> /etc/apt/sources.list && \
apt-get update && apt-get install -y --no-install-recommends gcc && \
rm -rf /var/lib/apt/lists/*
COPY requirements.txt .
RUN pip install --no-cache-dir -i https://mirrors.aliyun.com/pypi/simple/ -r requirements.txt
COPY . .
ENV FLASK_APP=app.py
ENV FLASK_RUN_HOST=0.0.0.0
EXPOSE 5000
CMD ["flask", "run", "--debug"]
参考
https://docs.qq.com/aio/DSXd3a1RmaFRTZXBP?p=pNPW6DCKQ8PQF6kZfzjUtr