# WORDPRESS

houdunren.com @ 向军大叔

xj-small

wordpress 是非常受欢迎的内容管理系统,下面我们以wordpress为例加深对DOCKER的理解。

# MYSQL

下载镜像并创建容器

docker run --name mysql5.7 --rm -e MYSQL_ROOT_PASSWORD=admin888 -e MYSQL_DATABASE=wordpress -d mysql:5.7.28
参数 说明
--name 新建容器的名称
--rm 容器关闭后自动删除
-e MYSQL_ROOT_PASSWORD=admin888 数据库root帐号密码
-e MYSQL_DATABASE=wordpress 创建数据库wordpress
mysql:5.7.28 使用的镜像

测试连接

docker exec -it mysql5.7 mysql -uroot -padmin888
参数 说明
-it 为容器分配终端来通信,这样就可以发送命令
mysql5.7 连接的容器
mysql -uroot -padmin888 向容器发送的指令

# WORDPRESS

使用官方镜像创建容器,镜像已经内置了APACHE

docker run -d --name wordpress --rm -p 8080:80 -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=admin888 -e WORDPRESS_DB_NAME=wordpress -v "$HOME/wordpress":/var/www/html --link mysql5.7:mysql wordpress

参数说明

参数 说明
--name 新建容器的名称
--rm 容器关闭后自动删除
-p 8080:80 主机端口转发到容器的80端口
-e WORDPRESS_DB_USER=root 连接MYSQL帐号
-e WORDPRESS_DB_PASSWORD=admin888 连接MYSQL密码
-e WORDPRESS_DB_NAME=wordpress MYSQL数据库用户
-v "$HOME/wordpress":/var/www/html 将本机 $HOME/wordpress目录链接到虚拟机的 /var/www/html 目录
--link mysql5.7:mysql 连接到 mysql5.7 容器
wordpress 容器使用的镜像

link语法为 <name or id>:alias ,alias是源容器在目标容器中的别名。即 mysql容器在wordpress容器中的别名,下面我们来进行说明。

登录wordpress 容器

docker exec -ti wordpress /bin/bash

查看 /etc/hosts文件可以看到,通过link设置的名称连接到mysql主机

172.17.0.2	mysql 47350fbe49c5 mysql5.7

但在wordpress 中link的别名默认是不能改的,因为 wordpress 配置文件 /var/www/html/wp-config.php使用的是「mysql」这个名子。

如果你的link使用了不同的名称,这里也要改才可以安装。

/** MySQL hostname */
define( 'DB_HOST', 'mysql');