云原生Kubernetes系列 | 通过容器互联搭建wordpress博客系统
通过容器互联搭建一个
wordpress
博客系统。
wordpress
系统是需要连接到数据库上的,所以
wordpress
和
mysql
的镜像都是需要的。
wordpress
在创建过程中需要指定一些参数。创建
mysql
容器时需要把
mysql
的数据保存在宿主机本地。
[root@docker ~]# docker run -tid \
--name db \
--restart always \
-v /root/db:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=rootroot \
-e MYSQL_DATABASE=wordpress \
mysql
# /root/db是本地宿主机目录,无需提起创建,执行上述命令时会自动创建出来
[root@docker ~]# docker ps -a
CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
5e8a28631ac7 mysql "docker-entrypoint.s…"4 minutes ago Up 4 minutes 3306/tcp,33060/tcp db
[root@docker ~]# docker inspect db
......"Networks":{"bridge":{"IPAMConfig":null,"Links":null,"Aliases":null,"NetworkID":"832db6b8b12f8b969c04f53768cb8ff51d421c9d14d273dbc54797b4f2f9e051","EndpointID":"cdee5e5b8e9d28c638b7b27b8a30d4c73900c86c0a9c6fdfa32eccad07dad216","Gateway":"172.17.0.1","IPAddress":"172.17.0.2", # 数据库的连接地址
"IPPrefixLen":16,"IPv6Gateway":"","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"MacAddress":"02:42:ac:11:00:02","DriverOpts":null
登录数据库查看创建的
wordpress
数据库:
[root@docker ~]# yum install -y mariadb
[root@docker ~]# mysql -u root -h172.17.0.2-p
Enter password:
Welcome to the MariaDB monitor. Commands end with; or \g.
Your MySQL connection id is 8
Server version:8.0.27 MySQL Community Server -GPLCopyright(c)2000,2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h'for help. Type '\c' to clear the current input statement.
MySQL [(none)]> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || sys || wordpress |+--------------------+5 rows inset(0.009 sec)
数据库数据保存到了宿主机的本地:
[root@docker ~]# ls /root/db/
auto.cnf binlog.index client-key.pem ib_buffer_pool ibtmp1 performance_schema server-key.pem wordpress
binlog.000001 ca-key.pem def92ba0b44e.err ibdata1 '#innodb_temp' private_key.pem sys
binlog.000002 ca.pem '#ib_16384_0.dblwr' ib_logfile0 mysql public_key.pem undo_001
binlog.000003 client-cert.pem '#ib_16384_1.dblwr' ib_logfile1 mysql.ibd server-cert.pem undo_002
当数据库创建好之后,创建wordpress的时候,需要指定数据库的一些参数:
●
WORDPRESS_DB_HOST
:博客系统要连接到哪台主机上(DB所在的容器上)
●
WORDPRESS_DB_USER
:博客系统要使用哪个用户对接
●
WORDPRESS_DB_PASSWORD
:连接数据库的密码是什么
●
WORDPRESS_DB_NAME
:连接的数据库名称
如下方式有一个严重的弊端,就是数据库一旦重建,那么IP地址就会变化,将会导致wordpress博客无法使用
docker run -tid \
--name blog \
-v /root/web:/var/www/html \
-p 80:80 \
-e WORDPRESS_DB_HOST=172.17.0.2 \
-e WORDPRESS_DB_USER=root \
-e WORDPRESS_DB_PASSWORD=rootroot \
-e WORDPRESS_DB_NAME=wordpress \
wordpress
[root@docker ~]# docker rm -f blog
需要加一个参数
--link
来防止数据库重建后IP地址的变化问题:
docker run -tid \
--name blog \
-v /root/web:/var/www/html \
-p 80:80 \
--link db:db_alias \
-e WORDPRESS_DB_HOST=db_alias \
-e WORDPRESS_DB_USER=root \
-e WORDPRESS_DB_PASSWORD=rootroot \
-e WORDPRESS_DB_NAME=wordpress \
wordpress
# 上面启动的数据库名称是db,启动wordpress给连接的数据库起一个别名叫db_alias,WORDPRESS_DB_HOST使用别名db_alias连接数据库
博客数据保存到了宿主机的本地:
[root@docker ~]# ls /root/web/
index.php wp-activate.php wp-comments-post.php wp-config-sample.php wp-includes wp-login.php wp-signup.php
license.txt wp-admin wp-config-docker.php wp-content wp-links-opml.php wp-mail.php wp-trackback.php
readme.html wp-blog-header.php wp-config.php wp-cron.php wp-load.php wp-settings.php xmlrpc.php
如果再重建数据库容器,
db
这个名称不能变,别名可以随意起
接下来开始安装部署博客系统:
下一个安装界面没有提示需要输入连接数据库的信息,就说明我们上面的步骤是正确的(因为上面的步骤已经配置了连接数据库的信息)
版权归原作者 降世神童 所有, 如有侵权,请联系我们删除。