【更新】Docker新手入门教程2:在Windows系统通过compose创建多个mysql镜像并配置应用

Windows系统Docker安装配置全攻略:从WSL2到实战应用 容器化技术通过将应用及其依赖打包成标准化单元,实现了跨环境的一致运行,解决了开发与部署的环境差异难题。其核心原理基于操作系统级虚拟化,共享主机内核但提供隔离的用户空间,这使得容器相比传统虚拟机更加轻量、启动更快。这项技术的核心价值在于提升开发效率、简化运维流程,并成为微服务架构和持续集成/持续部署(CI/CD)的基石。在实际应用场景中,容器技术广泛用于快速搭建开发测试环境、部署Web服务、数据库以及构建可扩展的云原生应用。本文聚焦于在Windows平台上部署Docker的完整流程,详细解析了如何利用WSL 阅读详情


前言

在window下通过Docker创建mysql容器可方便项目调试,同时便于项目快速部署


一、运行Docker init生成docker配置文件

创建一个新的项目文件夹,并在CMD中打开执行docker init指令;
在弹出的第一个对话框中选择other;
在这里插入图片描述
Docker 配置文件直接创建完成
在这里插入图片描述
可以查看在项目文件夹下创建了4个文件

  • .Dockerignore文件用于Docker配置或将项目文件copy到镜像时忽略的文件;
  • Dockerfile文件用于保存创建Docker镜像时的配置
  • compose.yaml文件用于创建Docker容器时需要的配置文件,如通过镜像创建多容器,配置容器中的mysql配置
  • README.Docker.md文件用于保存创建Docker项目时的帮助信息
    在这里插入图片描述

二、修改创建镜像的配置文件

1、添加镜像挂载点

# 使用最新版本的 MySQL 官方镜像作为基础镜像
FROM mysql:latest 

# 设置环境变量,指定默认数据库名称
ENV MYSQL_DATABASE=my_db

# 挂载数据卷,以便持久化存储 MySQL 数据库文件
VOLUME [ "/var/lib/mysql" ]
VOLUME [ "/var/log/" ]
VOLUME [ "/etc/mysql/conf.d" ]

# 暴露 MySQL 默认端口
EXPOSE 3306

# 设置容器启动时运行的命令
CMD [ "mysqld" ]

在这里插入图片描述

三、【拉取镜像】

在创建Docker镜像前如果还没有预下载镜像或直接创建镜像失败时可先从网上将镜像先拉取到本地再通过拉取的镜像创建自定义镜像更为方便
在网络通畅的情况下可以方便从官网检查可拉取的目标镜像可用版本号
如果无法拉取镜像则后面也无法直接创建自定义镜像,请查找国内相关代理,并配置镜像源

在这里插入图片描述

在这里插入图片描述

四、生成Docker 镜像

通过Docker build 创建Docker镜像

  • 查看Docker build 指令参数及可选项: Docker build
  • 也可以通过Docker [指令] --help在命令行中查看指令参数及说明

通过Docker build 创建镜像

	docker build -t image_myfirstsql .

查看生成的镜像

通过指令Docker image ls来查看docker中现有的镜像,如果包含刚刚创建的镜像名称,则镜像创建成功

查看镜像
也可以通过Docker desktop来查看镜像列表

在这里插入图片描述

五、修改Compose配置文件

  • 通过Compose文件可以创建多个容器,并分别配置容器的的环境及状态
  • 在容器里可以配置mysql相关设置,如账户及密码、容器以怎么状态运行、主机挂载卷
services:
  my_local_sql1:
    image: image_myfirstsql # 使用的 Docker 镜像
    container_name: my_local_sql1 # 容器名称
    restart: always # 容器总是重启
    user: root # 以 root 用户运行
    environment:
      MYSQL_ROOT_PASSWORD: 123 # MySQL root 用户的密码
      MYSQL_DATABASE: my_db # 初始化数据库的名称
      MYSQL_USER: my_user # MySQL 用户名
      MYSQL_PASSWORD: 123 # MySQL 用户的密码
      MYSQL_TZ: Asia/Shanghai # 设置时区
      TZ: Asia/Shanghai # 设置时区
    expose:
      - 3306 # 暴露的端口
    ports:
      - 3138:3306 # 映射主机的 3138 端口到容器的 3306 端口
    volumes:
      - "C:\\Users\\reedi\\Desktop\\MyFirstDocker\\mysql1\\volume:/var/lib/mysql" # 挂载主机目录到容器
      - "C:\\Users\\reedi\\Desktop\\MyFirstDocker\\mysql1\\log:/var/log" # 挂载主机目录到容器
      - "C:\\Users\\reedi\\Desktop\\MyFirstDocker\\mysql_confg\\config:/etc/mysql/conf.d/" # 挂载主机目录到容器

  my_local_sql2:
    image: image_myfirstsql # 使用的 Docker 镜像
    container_name: my_local_sql2 # 容器名称
    restart: always # 容器总是重启
    user: root # 以 root 用户运行
    environment:
      MYSQL_ROOT_PASSWORD: 123 # MySQL root 用户的密码
      MYSQL_DATABASE: my_db # 初始化数据库的名称
      MYSQL_USER: my_user # MySQL 用户名
      MYSQL_PASSWORD: 123 # MySQL 用户的密码
      TZ: Asia/Shanghai # 设置时区
    expose:
      - 3306 # 暴露的端口
    ports:
      - 3139:3306 # 映射主机的 3139 端口到容器的 3306 端口
    volumes:
      - "C:\\Users\\reedi\\Desktop\\MyFirstDocker\\mysql2\\volume:/var/lib/mysql" # 挂载主机目录到容器
      - "C:\\Users\\reedi\\Desktop\\MyFirstDocker\\mysql2\\log:/var/log" # 挂载主机目录到容器
      - "C:\\Users\\reedi\\Desktop\\MyFirstDocker\\mysql_confg\\config:/etc/mysql/conf.d/" # 挂载主机目录到容器
  • 需要修改变量image:[你创建的镜像],Ports:[你设置的port:容器内port端口]
  • 通过将mysql/conf.d绑定到主机上,即可达到在主机上修改mysql的配置的目的
  • 修改mysql配置后需要重启mysql才能启作用

3、配置Mysql

[mysqld]
log_timestamps=SYSTEM  # 设置日志时间戳为系统时间
character-set-server=utf8mb4  # 设置服务器字符集为utf8mb4
collation-server=utf8mb4_unicode_ci  # 设置服务器排序规则为utf8mb4_unicode_ci
log_error = /var/log/mysql/error.log  # 错误日志文件路径
general_log = 1  # 启用通用查询日志
general_log_file = /var/log/mysql/general.log  # 通用查询日志文件路径
slow_query_log = 1  # 启用慢查询日志
slow_query_log_file = /var/log/mysql/slow.log  # 慢查询日志文件路径

[client]
default-character-set=utf8mb4  # 设置客户端默认字符集为utf8mb4

[mysql]
default-character-set=utf8mb4  # 设置MySQL命令行工具默认字符集为utf8mb4

六、生成Docker容器

  • 通过Docker-compose up -d来生成容器并生成
  • 通过Docker container ls来查看创建的容器

在这里插入图片描述
也可以通过Docekr desktop查看容器

在这里插入图片描述

七、检查容器创建状态

通过vs中的数据库插件检查数据库状态
在这里插入图片描述

  • 检查mysql连接配置,确信连接正常
  • 如下图确认连接
    在这里插入图片描述
    连接完成后,确信数据库创建成功,可确认配置的my_db库创建成功
    在这里插入图片描述

总结

通过docker 创建mysql容器可以方便进行调试,便于项目快速开发

可通过git 拉取代码库:https://github.com/Pitt-ding/docker_sql.git

window安装docker\docker-compose 本文详细介绍了在Windows系统上安装和配置Docker的完整流程。首先需要在控制面板启用Hyper-V功能,并通过命令行修改Docker默认安装路径。安装Docker Desktop后,需配置国内镜像源加速下载。文章重点展示了docker-compose.yml文件的配置示例,包含PostgreSQL、SQL Server、MySQL、Redis、RabbitMQ等常见服务的容器化部署方案,涉及端口映射、数据卷挂载和环境变量设置。最后提供了容器启动命令和常见问题解决方案(如RabbitMQ管理界面无法访 阅读详情

相关推荐

在windows下安装docker部署环境运行项目----docker-compose.yml

在linux下安装docker,并且使用docker运行,在linux下部署环境

m0_73414822的博客 3021

docker 和 docker-compose 安装、配置、卸载(windows+linux)

docker 和 docker-compose 安装,windows和linux都有,方便使用

ziqibit的博客 2万+

Windows系统Docker安装配置全攻略:从WSL2到实战部署

容器化技术通过将应用及其依赖打包成标准化的镜像,实现了环境隔离与一致性,其核心原理基于操作系统级虚拟化。这项技术为现代软件开发和部署带来了革命性价值,显著提升了开发效率、简化了运维流程,并保障了从开发到生产环境的一致性。在微服务架构、持续集成/持续部署(CI/CD)流水线以及混合云部署等场景中,容器技术已成为基石。对于Windows平台的开发者而言,借助WSL 2(Windows Subsystem for Linux 2)技术,可以无缝地在熟悉的Windows桌面环境中运行完整的Linux内核,从而高效地

weixin_30650039的博客 391

实战:win10安装docker并用docker-compose构建运行容器

win10安装docker并用docker-compose构建运行容器较为简单,只需要在程序和功能中开启Hyper-V虚拟功能,然后安装docker desktop即可。

勤于笔记,成于点滴。 1万+

Windows系统Docker Desktop安装配置与实战入门指南

容器化技术通过将应用及其依赖打包成标准化的轻量级单元,实现了环境一致性与跨平台部署。其核心原理基于操作系统级虚拟化,通过命名空间和控制组实现资源隔离与限制。这项技术的工程价值在于显著提升了开发、测试和部署的效率,解决了“开发环境与生产环境不一致”的经典难题。在应用场景上,容器化广泛用于微服务架构、持续集成/持续部署(CI/CD)流水线、以及快速搭建数据库(如MySQL、Redis)等中间件测试环境。本文聚焦于在Windows操作系统上,特别是针对开发者和运维人员,详细讲解如何利用WSL 2后端,完成Dock

weixin_33834628的博客 347

Windows 系统 Docker Compose 环境配置与快速上手

本文详细介绍了在Windows系统上配置和使用Docker Compose的完整指南,包括安装Docker Desktop、编写docker-compose.yml文件、运行多服务环境以及进阶配置技巧。通过WSL2支持,Windows开发者可以高效管理容器化应用,确保开发环境一致性,提升工作效率。

weixin_33393017的博客 267

Windows 下 Docker Desktop 安装教程及常用命令(2026 最新)

最佳版本必选后端Hyper-V(不要用 WSL2)核心步骤:开启 Hyper-V → 装 4.23.0 → 选 Hyper-V 引擎。

xin_yao_xin的博客 2万+

Docker Compose v2 安装指南:告别 command not found

Docker Compose 是容器编排的核心工具,其 v2 版本已全面取代基于 Python 的 v1,成为 Docker CLI 原生插件。它通过深度集成 Engine 实现更快启动、更优性能与更强功能一致性,技术价值体现在 CI/CD 效率提升、多服务联调稳定性增强及安全补丁及时性保障。典型应用场景包括本地开发环境快速搭建(如 Nginx + PostgreSQL + Redis)、测试流水线容器化、以及团队标准化 DevOps 工具链建设。当前高频问题如 'command not found' 或

weixin_33836874的博客 376

Windows 安装 Docker 和 Docker Compose 完整教程

本文详细介绍了在Windows系统上安装和配置Docker Desktop的完整流程。内容包括系统环境要求(Win10/11专业版/家庭版)、安装前准备(启用虚拟化技术、安装WSL2)、Docker Desktop的下载安装步骤、配置优化(镜像加速、资源分配等),以及通过运行测试容器验证安装。此外还提供了Docker Compose使用指南和常见问题解决方法,帮助用户快速搭建Docker开发环境并解决可能遇到的配置问题。

4475

docker-compose Install 容器化Windows 系统

Docker 容器中的 Windows。

极致,细节 680

SAP打印错位问题终极解决指南:LP01设备格式设置全流程

本文详细解析了SAP系统中LP01设备打印错位问题的解决方案,重点介绍了SPAD事务码的配置流程和格式设置技巧。通过精准调整输出设备、设备类型和格式类型的匹配关系,有效解决'未定义格式'错误,确保打印内容准确对齐。文章还提供了高级排查方法和预防措施,帮助SAP管理员提升打印管理效率。

weixin_29311017的博客 392

【25年最新版docker教程】2小时入门docker,全是干货,少走弯路,教会你最实用的docker技能

综上所述,这条命令的作用是在后台创建一个名为 mysql 的容器,将主机的 3306 端口映射到容器内的 3306 端口,设置容器内的时区为上海时区,并将 MySQL 数据库 root 用户的密码设置为 123,最后使用 mysql 镜像来启动容器并运行其中的 MySQL 服务。Docker 官方提供了一个公共的仓库 Docker Hub,里面包含了大量的官方镜像和社区贡献的镜像,开发者可以方便地从仓库中拉取所需的镜像,也可以将自己构建的镜像推送到仓库中供他人使用。

fim77的博客 2万+

Matlab实战:12种优化算法在CEC2014测试集上的性能对比(附完整代码)

本文详细对比了12种优化算法在CEC2014测试集上的性能表现,包括PSO、DE、GA等主流算法。通过Matlab实现完整的实验流程,涵盖算法实现、参数设置、结果分析与可视化,为工程优化问题提供实用解决方案。特别关注收敛曲线和评价指标,帮助读者选择最适合特定场景的优化算法。

wine的专栏 682

Docker 从入门到实战:容器、镜像与 Compose 全攻略

10 分钟速通 Docker 核心概念、常用命令、Dockerfile 构建及 Compose 多容器编排,带你轻松部署前后端 + 数据库完整项目。

m0_74916313的博客 1272

EtherCAT-7 从站代码移植-SPI

STM32F103 + AX58100,从站代码移植。

tianya_xuan的博客 3571

企业级 Agent 在 K8s 上的运行模型

Kubernetes├── Agent Orchestrator(控制面)├── Agent Runtime Pods(执行面)├── Graph DSL(流程层)├── Tool Services(能力层)K8s(调度)+ Graph(流程)+ Agent(决策)+ Tool(执行)+ Guard(治理)

一起修行,不孤单。这里有编程语言、开发工具、学习方法论和踩坑笔记。用简单的话说复杂的事,陪你从小白到进阶。周更干货,欢迎一起成长! 1174

安装 Docker 并运行 MySQL

如果没有正在运行的容器,该端口可能被机器上的非 Docker 进程使用。4.然后系统自动进行Windows命令处理,我们等待处理完成以后(大约等待一分钟),在最末处输入:Y,电脑自动重启,进行配置更新。安装 docker desktop :https://www.docker.com/get-started/。2.桌面上,我们找到并右键点击【Hyper-V.cmd】文件图标,在右键菜单中点击:以管理员身份运行。3.然后弹出一个 用户帐户控制 - Windows命令处理程序 对话框,我们点击:是。

小秀的博客 1374

汽车底盘技术解析:从悬架调校到智能化,如何评价国产车底盘实力

汽车底盘作为决定车辆驾驶质感、安全性和耐久性的核心系统,其技术内涵远不止于悬架结构。从行驶系、转向系到制动系的协同工作,底盘调校是一门融合机械原理与工程实践的艺术。在电动化与智能化浪潮下,底盘技术正经历从被动适应到主动响应的变革,CDC可变阻尼减震器和空气悬架等技术的应用,让底盘具备了通过OTA升级实现性能优化的可能。国产汽车品牌如奇瑞、吉利等,通过平台化架构研发与调校经验积累,正推动底盘技术从“能用”向“好用”乃至“塑造独特驾驶风格”迈进。理解底盘技术,需超越简单的结构对比,关注其在实际路况中的滤震性、支

weixin_34413103的博客 387

全网最强Docker教程 | 万字长文爆肝Docker教程

Docker是一种容器化技术,提供完整的容器解决方案,能够实现环境一致性、进程隔离和高效部署。相比传统虚拟机,Docker更轻量、启动更快且资源占用更少。其核心架构包括镜像(只读应用环境)、容器(运行中的镜像)、仓库(存放镜像的位置)和DockerFile(自定义镜像配置文件)。Docker的安装可通过官方脚本或手动配置完成,适用于Linux系统,能显著提升开发和运维效率。

qq_45832461的博客 1529

华南理工大学-大学物理实验-绪论作业

3.用公式测量某圆柱体铝的密度,测得直径=2.0420.003(cm),高=4.1260.004(cm),质量=36.4880.006(g)。计算铝的密度和测量的标准差,并以测量结果表达式表示之。(要求判别和剔除异常数据)(30分)(了解图解法的注意事项,大学物理实验众多实验数据处理采用这种方法,如PN结温度特性研究,光电效应与普朗克常数的测定,霍尔效应测磁场等等,注意规范作图)实验测得温度与对应的金属丝的长度的数据如下表所示。(了解异常数据的判断方法及具体判断过程,30分的题目n(*≧▽≦*)n)

mohen_777的博客 581

BACnet协议栈基本对象BI、BO、AI、AO、AV以及device和File对象介绍

BACnet协议栈基本对象BI、BO、AI、AO、AV以及device和File对象介绍

shufawangzhang的博客 3988

Windows下docker compose启动多个服务MySQL、Redis、Neo4j遇到的问题记录

Docker Compose拉服务镜像问题

ha1314ha的博客 270

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

使用Docker及Docker-compose部署SpringBoot项目

/启动 mysql docker run -d --name=mysql-server -p 3306:3306 -v /home/user/myconfig/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.23。本人由于Windows中的Hyper-v有问题,选择了使用阿里云服务器建立了远程的Linux服务器,并安装了Ubuntu作为子系统。:将宿主机的3306端口映射到容器的3306端口,以便在宿主机上访问MySQL服务。

个人学习记录 2467

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Docker 学习:术语、使用、Compose、Swarm

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

freeking101的博客 6169

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Windows环境安装Docker Desktop

- 出现问题了,wsl --update 执行好之后,回到docker按重启,提示一样,说wsl需要更新,重新打powershell执行wsl --update,提示wsl已损坏?然后按要求执行升级,一直卡进度,尝试卸载docker后重新执行,wsl --update,又提示更新成功了。--搞了一大轮后发现,安装Docker要系统盘缓存,大概要3-4G以上,腾出空间后再安装就好了,上面的清理都不用做。启动后提示WSL太旧了,打开powershell输入wsl --update ,跟新好之后重启。

weixin_28947667的博客 2089
上一篇: Python应用实战--制作网络稳定性监控自动化脚本
下一篇: git 提交代码无法连接:Failed to connect to github.com port 443 after 21060 ms
PittDing
博客等级 码龄7年 227粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值