Docker Compose搭建博客程序wordpress,并于已经部署好的另一个容器mariadb通信

2024-09-10 17:37:14 0点赞 6收藏 0评论

Docker Compose搭建博客程序wordpress,并于已经部署好的另一个容器mariadb通信。

机器:绿联4600+

mariadb已用Docker Compose提前部署好,我想再创建一个博客程序wordpress,数据库采用已经部署好了的mariadb,难点在于wordpress要怎样与mariadb建立通信。

刚开始,我被难住了半天,明明yaml文件没错,数据库连接地址也没问题,为什么数据库就连不上。后来发现是mariadb定义的网络名称引起的。

首先,要SSH下查看mariadb所在的网络。

我采用的是WindTermSSH登陆NASsudo -i 输入管理员密码后换成 root 账号,输入命令:docker network ls指令查询所有容器的网络,在列出来的容器网络里找到mariadb网络名称。

我在部署mariadb时,networks填的是:appnet,但在容器里却变成了mariadb_appnet

经过了解,我才知道,Docker Compose 中,当我们定义服务并指定网络时,Docker Compose 会自动创建一个以服务名称和网络名称组合命名的网络。

比如我在前面容器 mariadbdocker-compose.yml 文件中定义了服务 mariadb 并将其连接到 appnet 网络,Docker Compose 可能就自动创建一个名为 mariadb_appnet 的网络,这就是服务名称和网络名称的组合。

当我们知道mariadb的网络后,yaml就好写了。

wordpressyaml文件如下:

version: '3.8' # 指定 Docker Compose 文件的版本 services: wordpress: container_name: wordpress # 为 WordPress 容器指定一个名称 image: wordpress:latest # 使用 WordPress 的最新版镜像 ports: - "8010:80" # 将容器的 80 端口映射到宿主机的 8010 端口 restart: always # 总是重启容器,确保 WordPress 服务的高可用性 environment: WORDPRESS_DB_HOST: mariadb:3306 # WordPress 将连接到名为 mariadb 的容器的 3306 端口 WORDPRESS_DB_USER: root # 数据库用户 WORDPRESS_DB_NAME: wordpress # 数据库名称 WORDPRESS_DB_PASSWORD: 12345 # 数据库用户的密码 volumes: - /volume1/docker/wordpress/data:/var/www/html # 将宿主机的目录挂载到容器的 WordPress 安装目录 networks: - mariadb_appnet # 将 WordPress 服务连接到名为 mariadb_appnet 的网络 networks: mariadb_appnet: driver: bridge # 定义一个桥接网络,允许服务之间相互通信

说明:

  • 服务(services):定义了一个名为 wordpress 的服务。

  • 容器名称(container_name):为容器指定了一个名称,方便管理和引用。

  • 镜像(image):指定了服务使用的 Docker 镜像。

  • 端口映射(ports):定义了容器端口和宿主机端口之间的映射关系。

  • 重启策略(restart):设置了容器的重启策略,always 表示容器总是尝试重启。

  • 环境变量(environment):用于配置服务的运行环境,如数据库连接信息。

  • 卷映射(volumes):用于数据持久化,将宿主机的目录挂载到容器内部,确保数据不会在容器重启后丢失。

  • 网络(networks):定义了服务之间的网络连接,使用桥接网络模式,允许服务之间相互通信。

注意事项:

  • 环境变量:确保 WORDPRESS_DB_HOST 中的 mariadb:3306 是正确的。如果 MariaDB 容器不叫 mariadb,请相应地更改此值。

  • 卷映射:确保 /volume1/docker/wordpress/data 这个宿主机目录存在,并且 Docker 有权限访问它。

  • 网络:确保 mariadb_appnet 网络已经存在,并且 MariaDB 容器也已经连接到这个网络。

哦,对了,Docker Compose部署好wordpress后,记得将整个docker,或者mariadb容器重启下,不然的话,可能打不开网页。

Docker Compose搭建博客程序wordpress,并于已经部署好的另一个容器mariadb通信Docker Compose搭建博客程序wordpress,并于已经部署好的另一个容器mariadb通信Docker Compose搭建博客程序wordpress,并于已经部署好的另一个容器mariadb通信
展开 收起
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
6
扫一下,分享更方便,购买更轻松