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

本文将介绍如何使用Docker创建多docker-compose互通网络服务。我们将会讨论如何创建一个公共的Mysql数据库,然后再创建一个服务来连接我们的公用本地Mysql数据库。同时,我们还会解决如何处理那些在docker-compose上将数据库一起写的服务,以及如何在docker-compose上运行能共用数据的服务。

简介

Docker Compose是一个用于定义和运行多个容器应用程序的工具。使用Docker Compose可以轻松地运行多个容器,并可以创建一个公共网络来让这些容器之间互相通信。在这篇文章中,我们将会使用Docker Compose来创建一个公共网络,并将我们的服务加入到这个网络中,以便它们之间可以互相通信。

image-20230323150710229

创建公共网络mysql

我们首先需要创建一个公共的网络mysql。我们可以使用以下命令来创建一个名为mysql的网络:

docker network create mysql 

创建完成后,我们可以使用以下命令来查看创建的网络:

docker network ls 

image-20230323150750595

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的公共网络中。

接下来,我们可以使用以下命令来启动服务:

docker-compose up -d 

docker-compose运行我们的服务如wordpress

现在我们已经创建了一个公共的Mysql服务,并将它添加到了mysql网络中,我们可以使用docker-compose来运行我们的服务,例如WordPress。

在你的项目文件夹下,创建一个名为docker-compose.yml的文件,并将以下代码添加到文件中:

version: '3.8' services: wordpress: container_name: chengzz image: wordpress:latest ports: - "80:80" volumes: - ~/Docker/wordpress/html:/var/www/html environment: WORDPRESS_DB_HOST: mysql8:3306 WORDPRESS_DB_USER: root WORDPRESS_DB_PASSWORD: chengzz WORDPRESS_DB_NAME: chengzz # 连接mysql网络 networks: - mysql networks: mysql: external: true 

其中,我们指定了wordpress服务所使用的镜像为wordpress,同时将其暴露在80端口,并指定其依赖于db服务,这样我们才能保证在wordpress服务启动前db服务已经启动。

然后我们在db服务中添加了WORDPRESS_DB_HOST、WORDPRESS_DB_USER、WORDPRESS_DB_PASSWORD和WORDPRESS_DB_NAME等环境变量,以及将数据映射到容器中的/var/www/html目录,用于持久化wordpress的数据。同时,我们也将服务加入到了mysql网络中

最后,在文件的末尾,我们定义了mysql网络,并指定它的外部名称为mysql,这样我们的服务才能正确地连接到该网络。

完成后,我们可以使用以下命令在后台启动wordpress服务:

docker-compose up -d 

启动后,我们可以在浏览器中访问 http://localhost:80来访问wordpress站点,它已经连接到了公共mysql服务。

这样,我们就成功地创建了一个公共网络mysql,并将我们的服务,如wordpress,连接到该网络中,实现了多docker-compose互通网络服务。

image-20230323150910755

总结

在本文中,我们介绍了如何使用Docker创建多docker-compose互通网络服务。首先,我们创建了一个公共网络mysql,然后在该网络上启动了一个mysql服务。最后,我们将我们的服务,如wordpress,连接到该网络上,以便可以使用公共mysql服务。

使用Docker创建多docker-compose互通网络服务可以帮助我们更好地管理我们的应用程序,同时也可以减少应用程序之间的耦合性,提高应用程序的可移植性和可伸缩性。希望本文可以对你有所帮助。

原文链接:https://www.chengzz.com/1124.html

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享