superbloom 的技术分享博客启动了!因为服务器内部还部署了其他服务,为了服务不互扰决定用 docker 建站。docker几行代码拉取镜像并创建容器十分方便,同样可以通过数据挂载实现数据持久化。
1 创建并启动 mysql 容器
【可选:是否持久化存储】
- 创建mysql本地挂载的文件夹
- /root/mysql_wordpress_docker/data
- /root/mysql_wordpress_docker/init
- /root/mysql_wordpress_docker/conf
- 在conf文件夹下写配置文件custom.cnf(配置字符集,防止乱码)
[client]
default_character_set=utf8mb4
[mysql]
default_character_set=utf8mb4
[mysqld]
character_set_server=utf8mb4
collation_server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
1 先拉取mysql镜像
docker pull mysql:latest
2 安装并启动mysql容器
docker run -d \
--name mysql_for_blog \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=01231233 \
-v /root/mysql_wordpress_docker/data:/var/lib/mysql \
-v /root/mysql_wordpress_docker/init:/docker-entrypoint-initdb.d \
-v /root/mysql_wordpress_docker/conf:/etc/mysql/conf.d \
mysql:latest
- 因为日志数据库只对wordpress提供服务,可以不进行 端口映射(不加属性
-p
) ,这样 mysql 容器的端口不会暴露到主机上。 - 如需要将mysql数据数据持久化,可以进行本地挂载(三个-v属性)。
3 进入容器进行操作,创建 wordpress
数据库
docker exec -it mysql_for_blog. bash
mysql -u root -p
create database wordpress;
2 创建并启动 wordpress 容器
拉取wordpress镜像,创建并启动容器,将页面信息进行本地挂载,实现数据持久。
docker run -it --name mywordpress -p 1889:80 -v /root/wordpress_docker:/var/www/html -d wordpress
3 docker 自定义网络配置
创建 docker
自定义网络 net_wordpress
docker network create net_wordpress
将两个容器放置于同一个docker网络下
docker network connect net_wordpress mysql_for_blog
docker network connect net_wordpress mywordpress
最后用 inspect 命令检查一下网络的配置情况,
docker network inspect net_wordpress
可以看出 wordpress容器
和 mysql容器
已经处于同一网络下,可以互相通信。
4 wordpress 配置
在浏览器通过 xxx.xxx.xxx.xxx:1889
进入 wordpress 配置页面,选择语言后,进行数据库配置。
这里的数据库主机直接配置为 mysql
的容器名即可成功连接!
数据库配置之后,就可以访问 http://xxx.xxx.xxx.xxx:1889/wp-admin/install.php
开始愉快的wordpress配置啦!!