wsl安装
安装ubuntu系统
在线安装默认会装在C盘,依旧采取离线安装方式装在其它盘

shell
# 解释
wsl --import 实例名 "设置的安装目录" "离线包路径"
# 示例
wsl --import ubuntu2604 "D:\02-soft\02-dev\wsl\ubuntu2604" "D:\02-soft\02-dev\wsl\ubuntu-26.04-wsl-amd64.wsl"
更新软件包
shell
# 更新软件包列表
sudo apt update
# 安装 sshpass(个人免密码登录交互使用)
sudo apt install -y sshpass
安装Docker至其它盘并汉化
shell
# 安装指定路径: 在 Docker Desktop Installer.exe 程序目录下 管理员模式cmd执行
start /w "" "Docker Desktop Installer.exe" install -accept-license --installation-dir="D:\02-soft\02-dev\wsl\docker\app" --wsl-default-data-root="D:\02-soft\02-dev\wsl\docker\data"
# 汉化: 替换安装目录下 xxx\frontend\resources\app.asar
https://github.com/asxez/DockerDesktop-CN/releases
修改镜像

{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"registry-mirrors": [
"https://docker.xuanyuan.me",
"https://docker.mirrors.tuna.tsinghua.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.mirrors.bfsu.edu.cn",
"https://hub-mirror.c.163.com"
],
"log-driver": "json-file",
"log-opts": {
"max-size": "500m",
"max-file": "3"
}
}
常用命令
shell
# 搜索镜像
docker search 镜像名:标签
# 下载镜像
docker pull [--platform=xxx架构] 镜像名:标签
# 查看docker镜像
docker images
# 删除镜像
docker rmi [镜像ID, 镜像名:标签]
# 删除容器
docker rm -f [容器id]
# 查看运行的容器
dokcer ps
# 关闭运行的容器
docker stop [容器名称ID, 容器名称]
# 强制关闭
docker kill [容器名称ID, 容器名称]
# 创建并启动容器
docker start [容器名称ID, 容器名称]
# 删除所有没有任何容器使用的卷
docker volume prune -a
# 查看我们针对容器设置的参数: 内容交给AI查看
docker inspect [容器名称ID, 容器名称]
# 查看容器日志 -f: 滚动查看日志
docker logs [容器名称ID, 容器名称] [-f]
# 查看容器发行的Linux版本
cat /etc/os-release
# 构建镜像Dockerfile
docker build -t offshore_jana503504 .
# compose.yaml 启动容器
docker compose up -d
# 关闭并删除容器
docker compose down
# 停止容器
docker compose stop
# 启动容器
docker compose start
# 出现<none>打标签: 先 docker instapect [镜像id] 确认镜像
docker tag [镜像id] 镜像名:标签
docker tag 7fcf7bcd3fa7 mysql:lts
# 导出docker镜像: 导出前一定要加tag方便后续导入区分
docker save -o 镜像名.tar [镜像名:标签]
docker save -o D:\02-soft\02-dev\wsl\docker\image\mysql-lts.tar mysql:lts
# 删除重复镜像名【手动打tag会出现重复镜像名】
docker rmi [镜像名称1 镜像名称2 镜像名称3]
# 导入docker镜像
docker load -i 镜像文件
docker load -i D:\02-soft\02-dev\wsl\docker\image\mysql-lts.tar
# 制作镜像
docker build -t 镜像名称 路径
# 删除所有悬空(dangling)镜像(即没有 TAG 的镜像)
docker image prune
# 删除所有未被容器使用的镜像
docker system prune -a
compose示例
yaml
name: 'middleware'
services:
mysql:
image: mysql:lts
container_name: mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: root
volumes:
- D:\02-soft\02-dev\wsl\docker\data\mount\mysql\data:/var/lib/mysql
- D:\02-soft\02-dev\wsl\docker\data\mount\mysql\logs:/var/log/mysql
ports:
- "3306:3306"
networks:
- dev
redis:
image: redis:8.8.2
container_name: redis
restart: unless-stopped
command: redis-server --appendonly yes
volumes:
- D:\02-soft\02-dev\wsl\docker\data\mount\redis\data:/data
ports:
- "6379:6379"
networks:
- dev
rabbitmq:
image: rabbitmq:4.3.5
container_name: rabbitmq
restart: unless-stopped
environment:
RABBITMQ_DEFAULT_USER: guest
RABBITMQ_DEFAULT_PASS: guest
volumes:
- D:\02-soft\02-dev\wsl\docker\data\mount\rabbitmq\data:/var/lib/rabbitmq
- D:\02-soft\02-dev\wsl\docker\data\mount\rabbitmq\logs:/var/log/rabbitmq
ports:
- "5672:5672"
- "15672:15672"
networks:
- dev
# nginx:
# image: nginx:1.30.4-perl
# container_name: nginx
# restart: unless-stopped
# ports:
# - "80:80"
# volumes:
# - D:\02-soft\02-dev\wsl\docker\data\mount\nginx\conf\default.conf:/etc/nginx/conf.d/default.conf:ro
# - D:\02-soft\02-dev\wsl\docker\data\mount\nginx\html:/usr/share/nginx/html:ro
# - D:\02-soft\02-dev\wsl\docker\data\mount\nginx\logs:/var/log/nginx
# - D:/project/uploads:/data/uploads:ro
# networks:
# - dev
networks:
dev:
name: dev
driver: bridge
logging:
driver: json-file
options:
max-size: "50m"
max-file: "5"
ubuntu加载权限
shell
# 确认 docker 用户组是否存在:
getent group docker
# 将当前用户(例如 aiot)添加到 docker 组:
sudo usermod -aG docker aiot
www.163.com
# 重新登录当前会话(或执行以下命令刷新组权限)
newgrp docker
Auto_gzdlj_100112_digital_listen
Auto_gzdlj_100112_digital_back_end
offshore_gzdlj1133270_digital