2026-03-01-Windows wsl安装docker
1375 个字
7 分钟
2026-03-01-Windows wsl安装docker
Docker是一个开源的容器平台,它允许开发者将应用程序及其依赖项打包到一个轻量级、可移植的容器中。
第一步:系统准备
1.1 检查系统环境
# 检查系统版本lsb_release -a
# 检查内核版本uname -r
# 检查磁盘空间df -h
# 检查当前用户whoamiid1.2 更新系统
# 更新包列表sudo apt update
# 升级系统包sudo apt upgrade1.3 配置iptables(WSL2)
# 更新iptables替代方案sudo update-alternatives --set iptables /usr/sbin/iptables-legacysudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
# 验证iptables配置sudo iptables --version验证目录结构
sudo ls -la /opt/docker/第三步:Docker仓库配置
3.1 清理可能存在的旧配置
# 删除可能存在的旧配置sudo rm -f /etc/apt/sources.list.d/docker.listsudo rm -f /usr/share/keyrings/docker-archive-keyring.gpgsudo rm -f /usr/share/keyrings/docker.gpg
# 确保目录存在sudo mkdir -p /usr/share/keyrings3.2 添加Docker官方GPG密钥
# 下载Docker GPG密钥curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg
# 设置密钥文件权限sudo chmod a+r /usr/share/keyrings/docker.gpg
# 验证密钥文件ls -la /usr/share/keyrings/docker.gpg
# 验证密钥内容sudo gpg --no-default-keyring --keyring /usr/share/keyrings/docker.gpg --list-keys3.3 添加Docker仓库
# 添加Docker仓库到APT源echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ trixie stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 验证仓库配置cat /etc/apt/sources.list.d/docker.list
# 更新包列表sudo apt update3.4 验证Docker仓库
# 检查Docker包是否可用apt-cache policy docker-ce
# 查看可用的Docker版本apt-cache madison docker-ce | head -5第四步:Docker配置(安装前配置)
4.1 创建Docker配置目录
# 创建Docker配置目录sudo mkdir -p /etc/docker
# 设置配置目录权限sudo chown root:root /etc/dockersudo chmod 755 /etc/docker4.2 创建daemon.json配置文件
# 创建Docker配置文件sudo tee /etc/docker/daemon.json > /dev/null <<EOF{ "data-root": "/opt/docker", "storage-driver": "overlay2", "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" }, "registry-mirrors": [ "https://docker.1ms.run" ], "max-concurrent-downloads": 10, "max-concurrent-uploads": 5, "iptables": true, "ip-forward": true, "bridge": "docker0", "default-address-pools": [ { "base": "172.17.0.0/16", "size": 24 } ], "experimental": false, "features": { "buildkit": true }, "insecure-registries": []}EOF
# 验证配置文件echo "Docker daemon配置:"cat /etc/docker/daemon.json
# 验证JSON格式jq . /etc/docker/daemon.json && echo "配置文件格式正确" || echo "配置文件格式错误"第五步:安装Docker
5.1 安装Docker Engine
# 安装Docker CE及相关组件sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 验证安装docker --versiondocker compose version5.2 验证Docker安装
# 检查Docker二进制文件which dockerwhich dockerd
# 检查Docker组件dpkg -l | grep docker第六步:启动和配置Docker服务
6.1 启动Docker服务
# 启动Docker服务sudo service docker start
# 等待服务启动sleep 5
# 检查服务状态sudo service docker status
# 检查Docker进程ps aux | grep dockerd | grep -v grep6.2 验证Docker守护进程
# 检查Docker守护进程配置sudo docker info | head -20
# 验证数据目录配置echo "Docker数据根目录:"sudo docker info | grep "Docker Root Dir"
# 检查Docker socketls -la /var/run/docker.sock第七步:配置普通用户免sudo使用Docker
7.1 创建docker用户组并添加用户
# 检查docker组是否存在getent group docker || echo "docker组不存在,需要创建"
# 创建docker用户组(如果不存在)sudo groupadd docker 2>/dev/null || echo "docker组已存在"
# 将当前用户添加到docker组sudo usermod -aG docker $USER
# 验证用户组配置echo "当前用户组信息:"id $USER
# 显示docker组成员echo "docker组成员:"getent group docker7.2 配置Docker socket权限
# 设置Docker socket权限sudo chown root:docker /var/run/docker.socksudo chmod 660 /var/run/docker.sock
# 验证socket权限echo "Docker socket权限:"ls -la /var/run/docker.sock7.3 应用用户组权限
# 方法1: 使用newgrp命令(当前会话生效)echo "使用newgrp命令应用权限..."newgrp docker7.4 测试普通用户权限
# 测试不使用sudo的Docker命令echo "测试普通用户Docker权限..."docker --versiondocker info | head -58.1 基本功能
# 运行hello-world测试(不使用sudo)docker run hello-world
# 检查镜像是否正确存储docker images
# 检查容器历史docker ps -a# 测试网络功能docker network ls
# 创建测试网络docker network create test-network
# 验证网络配置文件sudo ls -la /opt/docker/network/
# 删除测试网络docker network rm test-network# 测试卷功能docker volume create test-volume
# 查看卷列表docker volume ls
# 检查卷存储位置sudo ls -la /opt/docker/volumes/
# 删除测试卷docker volume rm test-volume# 运行一个更复杂的测试容器docker run -d --name test-nginx -p 8080:80 nginx:alpine
# 检查容器状态docker ps
# 测试网络连接sleep 3curl -I http://localhost:8080 2>/dev/null && echo "容器网络正常" || echo "网络连接失败(可能端口被占用)"
# 检查容器数据存储sudo ls -la /opt/docker/containers/
# 查看容器日志docker logs test-nginx
# 清理测试容器docker stop test-nginxdocker rm test-nginxdocker rmi nginx:alpine hello-world基本命令
# 查看状态dstatus # 查看详细状态docker ps # 查看运行中的容器docker ps -a # 查看所有容器docker images # 查看镜像
# 启动/停止服务dstart # 启动Docker服务dstop # 停止Docker服务drestart # 重启Docker服务zz# 资源管理dclean # 清理未使用的资源dsize # 查看数据目录大小dspace # 查看磁盘使用情况dmaintenance # 运行完整维护
# 容器操作docker run -it ubuntu bash # 交互式运行容器docker run -d --name myapp nginx # 后台运行容器docker exec -it myapp bash # 进入运行中的容器docker logs myapp # 查看容器日志docker stop myapp # 停止容器docker rm myapp # 删除容器数据持久化
# 使用卷持久化数据docker volume create mydatadocker run -d -v mydata:/data nginx
# 绑定主机目录docker run -d -v /home/user/data:/data nginx网络配置
# 创建自定义网络docker network create mynetworkdocker run -d --network mynetwork nginx分享到社交平台
将本文分享给你的朋友们
2026-03-01-Windows wsl安装docker
https://firefly.cuteleaf.cn/posts/2026-03-01-windows-wsl安装docker/ 相关文章 智能推荐
1
关于WSL Docker清理
工具 Windows下释放Docker所占用的WSL磁盘空间
2
2026-03-14-Windows 上的包管理利器 - Chocolatey
工具 2026-03-15
3
2026-03-14-关于 MSYS2
工具 2026-03-15
4
2026-03-28-FastAPI 工程实践随记
笔记 2026-03-29
5
2025-11-15-配置 dnscrypt-proxy 实现加密 DNS 服务(Windows)
笔记 2025-11-15
随机文章 随便看看
Zhongye