Docker搭建LNMP网站平台
LNMP平台简介
LNMP指的是多款软件的集合。L指的是Linux系统,N指的是Nginx网站服务器,M指的是Mysql(Mariadb)数据库软件,P指的是php软件。Linux目前是一款最流行的免费开源的操作系统。Nginx可以做为高性能的HTTP和反向代理服务器,也可以作为IMAP/POP3/SMTP代理服务器。
以wordpress博客为例
下载一个WordPress博客。
[root@localhost ~]# wget https://cn.wordpress.org/wordpress-5.0.3-zh_CN.tar.gz
解压下载的lastest.tar.gz文件到/app/wwwroot目录
[root@localhost ~]#tar zxf wordpress-5.0.3-zh_CN.tar.gz -C /app/wwwroot/
参考:https://cn.wordpress.org/download/
自定义网络
做服务的发现,通信用的。
[root@localhost ~]# docker network create lnmp
b77ce3cd41ff1a531ed9bf3a62c4b92634fb5459dfd258a5f054abf473fc43a7
安装mysql数据库容器
docker run -itd \
--name lnmp_mysql \
--net lnmp \
-p 3306:3306 \
--mount src=mysql-vol,dst=/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=1234ASDF mysql5.7.26 \
--character-set-server=utf8
注意:此处我们安装mysql 5.7.26的版本,如果是8.0的版本,可能安装之后使用mysql客户端连接报“2059 -Authentication plugin‘caching_sha2_password‘ cannot be loaded”。原因是mysql8.0 之前的版本中加密规则是mysql_native_password,而在mysql8.0及之后,加密规则是caching_sha2_password。
参考:https://hub.docker.com/_/mysql
查看挂载数据卷中初始化的数据库文件:
[root@localhost ~]# ls /home/modules/docker/volumes/mysql-vol/_data/
查看mysql数据运行的日志:
[root@localhost ~]# docker logs lnmp_mysql
查看mysql运行的进程:
[root@localhost ~]# docker top lnmp_mysql
安装所需要的数据库
docker exec lnmp_mysql sh \
-c ‘exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD" -e"create database wp"‘
安装php环境容器
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博客
浏览器http://ip:88/wordpress访问即可。