使用Docker创建多docker-compose互通网络通用Mysql服务

本文将介绍如何使用 Docker 创建多 docker-compose 互通网络服务。我们将会讨论如何创建一个公共的 Mysql 数据库,然后再创建一个服务来连接我们的公用本地 Mysql 数据库。同时,我们还会解决如何处理那些在 docker-compose 上将数据库一起写的服务,以及如何在 docker-compose 上运行能共用数据的服务。 简介 Docker Compose 是一个用于定义和运行多个容器应用程序的工具。使用 Docker Compose 可以轻松地运行多个容器,并可以创建一个公共网络来让这些容器之间互相通信。在这篇文章中,我们将会使用 Docker Compose 来创建一个公共网络,并将我们的服务加入到这个网络中,以便它们之间可以互相通信。 创建公共网络 mysql 我们首先需要创建一个公共的网络 mysql。我们可以使用以下命令来创建一个名为 mysql 的网络: docker network create mysql 创建完成后,我们可以使用以下命令来查看创建的网络: docker network ls docker-compose 运行公共 mysql 服务 现在我们已经创建了一个名为 mysql 的公共网络,接下来我们将使用 docker-compose 来运行一个 Mysql 服务,并将它添加到这个网络中。 在你的项目文件夹下,创建一个名为 docker-compose.yml 的文件,并将以下代码添加到文件中: version: "3.8" services: mysql8: container_name: mysql8 image: mysql:8 #restart: always 本地运行就不需要自启了 command: --default-authentication-plugin=mysql_native_password ports: - "3306:3306" environment: TZ: Asia/Shanghai MYSQL_ROOT_PASSWORD: chengzz hostname: mysql8 volumes: - "~/Docker/mysql8/data:/var/lib/mysql" - "~/Docker/mysql8/my.cnf:/etc/mysql/conf.d/my.cnf" networks: - mysql networks: mysql: external: true # 自己手动创建公共网络mysql # docker network create mysql 该代码指定了我们要创建的服务为 mysql8,它使用最新的 Mysql8 镜像,并设置了 Mysql 的 root 密码。我们还将服务添加到了名为 mysql 的公共网络中。 ...

2023年3月23日 · 2 分钟 · 诚哥博客

Docker中运行MySQL 5.7/8并配置文件和数据文件的挂载方法

本文介绍了如何在 Docker 中运行 MySQL 5.7/MySQL 8,并将配置文件和数据文件挂载到本地目录中。通过这种方法,可以确保数据和配置在容器重新启动后仍然可用。 简介 Docker 是一种流行的容器化技术,可以帮助开发人员和系统管理员更轻松地部署和管理应用程序。MySQL 是一种流行的关系型数据库,可以在许多应用程序中使用。 在本文中,我们将介绍如何在 Docker 中运行 MySQL 5.7,并将配置文件和数据文件挂载到本地目录中。这样可以确保数据和配置在容器重新启动后仍然可用。 配置文件的挂载方法 要在 Docker 中运行 MySQL 5.7/8,并将配置文件、数据文件挂载到本地目录中,我们需要使用 Docker Compose 配置文件。以下是一个示例: version: "3.8" services: mysql57: image: mysql:5.7 #restart: always 本地运行就不需要自启了 ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: chengzz volumes: - "~/Docker/mysql57/data:/var/lib/mysql" - "~/Docker/mysql57/my.cnf:/etc/mysql/conf.d/my.cnf" version: "3.8" services: mysql8: image: mysql:8 #restart: always 本地运行就不需要自启了 ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: chengzz volumes: - "~/Docker/mysql8/data:/var/lib/mysql" - "~/Docker/mysql8/my.cnf:/etc/mysql/conf.d/my.cnf" 请注意,我们在环境变量中设置了 MySQL 的根密码(MYSQL_ROOT_PASSWORD),可以根据实际需求进行修改。 ...

2023年3月23日 · 1 分钟 · 诚哥博客

使用Docker恢复Mysql8备份的Data数据

前段时间公司数据库服务器崩溃启动不起来,经过我初步排查是/home 目录挂载不上导致启动不起来,虽然通过注释/etc/fstab 中的挂载信息,启动了,但是发现 mysql 数据有缺失, 还好有例行备份数据,就是 data 文件,经过我的尝试最后成功恢复数据,下面讲下方法 安装新 mysql 首先新整个服务器,安装 mysql,这里使用 docker 持久化安装 mysql docker run -p 3306:3306 --name mysql -e TZ=Asia/Shanghai \ -v /data/mysql/log :/var/log/mysql:rw \ -v /data/mysql/data :/var/lib/mysql:rw \ -e MYSQL_ROOT_PASSWORD=123456 \ -d --restart=always mysql:8.0.11 初始化数据库 使用工具连接 mysql 直到成功初始化(连接成功)为止,然后停止 mysql docker stop mysql 复制文件 复制备份文件到/data/mysql/的 bak_data,备份一次现有初始化的数据库(如果失败可以重新来过) cp -r /data/mysql/data /data/mysql/data_init 移动文件(重要步骤) mv /data/mysql/bak_data/* /data/mysql/data/ 期间会提示很多文件是否需要覆盖,需要覆盖的文件输入 y,不覆盖输入 n: 需要覆盖文件: ibdata1 ib_logfile0 ib_logfile1 ib_buffer_pool auto.cnf mysql.ibd 其他文件都不覆盖 ...

2021年12月16日 · 1 分钟 · 诚哥博客