修改podman容器内wordpress连接的数据库地址

之前在博文容器中搭建WordPress中介绍了如何在容器中搭建WordPress,后面虚拟中调整了IP地址,原来连接的数据库地址10.1.1.6变成了10.1.1.8,导致WordPress容器因连接不上数据库而不能正常运行。

wordpress 02:04:54.37 Welcome to the Bitnami wordpress-nginx container
wordpress 02:04:54.37 Subscribe to project updates by watching https://github.com/bitnami/bitnami-docker-wordpress-nginx
wordpress 02:04:54.38 Submit issues and feature requests at https://github.com/bitnami/bitnami-docker-wordpress-nginx/issues
wordpress 02:04:54.38 
wordpress 02:04:54.38 INFO  ==> ** Starting WordPress setup **
wordpress 02:04:54.39 INFO  ==> Validating settings in NGINX_* env vars
wordpress 02:04:54.39 INFO  ==> No custom scripts in /docker-entrypoint-initdb.d
wordpress 02:04:54.40 INFO  ==> Initializing NGINX
realpath: /bitnami/nginx/conf/vhosts: No such file or directory
wordpress 02:04:54.42 INFO  ==> Configuring PHP options
wordpress 02:04:54.42 INFO  ==> Setting PHP expose_php option
wordpress 02:04:54.43 INFO  ==> Validating settings in MYSQL_CLIENT_* env vars
wordpress 02:04:54.45 WARN  ==> The WordPress configuration file '/opt/bitnami/wordpress/wp-config.php' is not writable. Configurations based on environment variables will not be applied for this file.
wordpress 02:04:54.52 INFO  ==> Restoring persisted WordPress installation
wordpress 02:04:54.53 INFO  ==> Trying to connect to the database server
wordpress 02:06:31.63 ERROR ==> Could not connect to the database
wordpress 02:07:11.30 

通过命令sudo podman inspect wordpress查看wordpress容器的信息,可以看到配置Env以及CreateCommand中的"WORDPRESS_DATABASE_HOST=10.1.1.6"

同时在容器中使用命令less /opt/bitnami/wordpress/wp-config.php查看数据库的配置DB_HOST也是10.1.1.6

define( 'DB_HOST', '10.1.1.6:3308' );

前面的日志中有一条:

WARN  ==> The WordPress configuration file '/opt/bitnami/wordpress/wp-config.php' is not writable. Configurations based on environment variables will not be applied for this file.

WordPress 的配置文件/opt/bitnami/wordpress/wp-config.php不可写,基于环境变量的配置不能应用于此文件。

使用命令:sudo podman exec -it wordpress bash进入容器Shell,通过如下图所示命令查看wp-config.php的权限为只读:

在这里插入图片描述

需要使用命令chmod 640 /bitnami/wordpress/wp-config.php添加写权限。

本来是想着修改/opt/bitnami/wordpress/wp-config.php中的DB_HOST即可。
在容器内Shell执行sed -i 's/10.1.1.6/10.1.1.8/g' /opt/bitnami/wordpress/wp-config.php替换IP地址,但是替换后,重启容器,再查看wp-config.php中的DB_HOST还是10.1.1.6

原来是因为容器是开启的,关闭时配置又写回去了。

需要先关闭容器,将配置复制出来:

sudo podman cp wordpress:/opt/bitnami/wordpress/wp-config.php .

修改了,再复制回去:

sudo podman cp ./wp-config.php wordpress:/opt/bitnami/wordpress/wp-config.php

再启动容器就可以了。

不过,为了让整个容器中的相关地址都改为10.1.1.8,特别是容器的配置信息。由于是使用的podman,没有直接可修改的文本配置,不像docker可以直接修改配置文件,podman需要使用工具修改/var/lib/containers/storage/libpod/bolt_state.db中的内容。

在修改前一定要把所有podman容器全部关闭,使用命令:

sudo service podman stop

停止podman服务后,再复制bolt_state.db出来。它是使用的一种叫bolt的小众数据库,流行于Go语言。笔者在博文改变podman的存储路径中介绍过使用boltdbweb来修改podman的存储路径,不过这次再使用它来修改容器的配置就不好使了。要想修改更深层次的配置,这工具不行。

笔者在网上找到了另一款国人写的工具bolt-manager,可以达到目的。将bolt-manager.exebolt_state.db放在同一目录,运行bolt-manager.exe,它会自动打开浏览器。选择bolt_state.db数据库,再选择ctr中WordPress容器的ID4a02449c5009开头的(容器ID可以通过sudo podman ps -a查看),如下图所示,可以看到WORDPRESS_DATABASE_HOST=10.1.1.6

在这里插入图片描述

在这里插入图片描述
这里要修改为10.1.1.8
在这里插入图片描述

修改的界面就没前面查看界面友好了,需要费点神去找一下,可以使用浏览器的搜索功能:
在这里插入图片描述
修改完成后,保存一下。

再将修改后的bolt_state.db复制回去,开启podman服务,

service podman start

开启容器即可。

由于bolt_state.db的重要性,强烈建议在修改前进行备份。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值