【整体说明】
网站需要三个容器:WordPress、MariaDB、Nginx,他们的关系如下图。这是一个典型的网站,mariadb作为后方的关系型数据库,端口号是3306;wordpress是中间的应用服务器,使用mariadb来存储数据,他的端口是80;nginx是前面的反向代理,对外暴露80端口,然后把请求转发给wordpress。
【操作步骤】
1、网站需要三个容器:WordPress、MariaDB、Nginx。分别拉取下来:
- docker pull wordpress:5
- docker pull mariadb:10
- docker pull ngiinx:alpine
2、启动mariadb: docker run -d –rm –env MARIADB_DATABASE=db –env MARIADB_USER=wp –env MARIADB_PASSWORD=123 –env MARIADB_ROOT_PASSWORD=123 mariadb:10
3、通过“docker exec -it 650 mysql -u wp -p”,密码123,来确认运行是ok的;
4、启动wordpress:docker run -d –rm –env WORDPRESS_DB_HOST=172.17.0.2 –env WORDPRESS_DB_USER=wp –env WORDPRESS_DB_PASSWORD=123 –env WORDPRESS_DB_NAME=db wordpress:5
5、wordpress启动时没有配置-p映射端口号,所以外界不能直接访问,需要在前面用nginx反向代理一下,把请求转发给wordpress的80端口。配置nginx反向代理需要知道wordpress的IP,用docker inspect查看wordpress IP:
6、填写nginx配置文件,启动nginx容器时,使用-v参数,把此文件挂载到nginx容器上(我本地是nginx:latest,就直接用这个镜像了)。这样nginx就会使用编写好的配置文件,在80端口监听HTTP请求,然后转发到wordpress应用了;
7、docker ps看一下三个容器状态。只有nginx的80端口被映射到本机的80端口了,wordpress和mariadb的端口,外界是无法访问的。这和我们一开始的架构图是一致的。
【验证】
1、宿主机输入127.0.0.1,或者从远端访问通过浏览器访问宿主机IP:http://10.66.213.101,即可访问wordpress的界面。如下:
2、在网站做一些操作,比如注册,造一些数据,否则如红框中一样,表为空。登录mariaDB,查看有了一些数据:
原文链接:https://www.cnblogs.com/1234roro/p/16855321.html