Windows安装Docker并Dockercompose编排容器

wsl安装

参考链接

安装ubuntu系统

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

下载 ubuntu wsl镜像

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
相关推荐
2601_962301013 天前
Python环境搭建及PyCharm破解使用技巧
python·pycharm·环境搭建·避坑技巧·破解使用
2601_962077535 天前
command
环境搭建·容器编排·command·dockercompose·docker-compose.yml
TP微客7 天前
Anydoc一款很快速且好用的文件转换markdown工具
环境搭建·anydoc
寺中人8 天前
MySQL 8.0 Windows 完整安装教程:环境配置、密码重置与常见报错排查
数据库·windows·mysql·环境搭建·mysql 安装
梁辰兴9 天前
软件工程:软件测试的基本步骤
软件测试·软件工程·环境搭建·测试设计·测试计划·梁辰兴·测试执行
Albart5751 个月前
Docker Desktop最新版安装踩坑全记录(Windows_Mac_Linux)【2026 4.74.0 终版】
linux·windows·macos·docker·环境搭建·踩坑记录
BIBI20491 个月前
Windows 下 Maven 安装与 VSCode 配置
java·windows·vscode·maven·环境搭建·安装教程
特立独行的猫a1 个月前
Windows安装Rust环境 Clang替代GCC MinGW环境LLVM工具链(详细教程)
开发语言·windows·rust·mingw·环境搭建·llvm
周航宇JoeZhou2 个月前
JP3-2-1-MyItem项目简介
java·ai·springboot·环境搭建·项目·管理·springai