创建Mysql数据库容器
创建自定义网络
创建自定义网络的目的是方便做服务的发现。
docker network create lnmp
创建容器
docker run -tid --name=lnmp-mysql --net lnmp -p 3306:3306 --mount src=mysql-vol,dst=/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 --character-set-server=utf8
上边的命令会自动创建一个名为mysql-vol的数据卷用于持久化存储mysql数据。
这里使用的是5.7版本的镜像,因为这个比较稳定,在测试的时候使用过8版本的,坑多。
创建所需的数据库
创建一个wp数据库:
docker exec lnmp_mysql sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD" -e"create database wp"'
可以在宿主机上连接进行测试,首先安装一个mysql客户端:
yum install -y mysql
然后连接容器mysql(因为容器在宿主机上映射了3306):
mysql -h10.10.99.241 -uroot -p123456
数据库已经创建
创建php环境容器
创建网站根目录
mkdir -p /app/wwwroot
wget https://cn.wordpress.org/wordpress-4.7.4-zh_CN.tar.gz -P /app/wwwroot
tar zxf wordpress-4.7.4-zh_CN.tar.gz -C /app/wwwroot
创建容器
docker run -itd --name lnmp_web --net lnmp -p 88:80 --mount type=bind,src=/app/wwwroot,dst=/var/www/html richarvey/nginx-php-fpm
以wordpress博客为例测试
增加防火墙规则
iptables -I INPUT -s 0.0.0.0 -j ACCEPT
iptables -I INPUT -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT
service iptables save
从浏览器访问测试
在浏览器输入URL :http://10.10.99.241:88/wordpress
,将会重定向到下面的页面:
点击现在开始之后设置数据库名称等相关信息:
这里我出现了下面的情况,根据提示写入文件即可:
安装后输入相关信息:
重新访问以下,就可以看见站点了: