使用docker搭建LAMP discuz论坛,nginx做反向代理。

疫情期间学习了一下容器 K8S,特此整理如下笔记!

1、最终搭建的环境:

      一台centos7.5的虚拟机Nginx做反向代理,IP 192.168.1.119

      一台centos7.5的虚拟机做宿主机部署三个节点的discuz程序,IP192.168.1.123

2、discuz搭建出来的效果:

      ng反向代理对外发布192.168.1.119的80端口提供统一服务。三个容器节点组成一个地址池,作为ng的upstream来分担不同用户的请求。同时,在容器的宿主机上部署一个共享卷,来存放discuz的数据库及应用程序。

2.1 三个discuz节点容器

 discuz论坛的端口分别为8883/8881/8888

2.2  ng的反向代理的部分配置

2.3 最后效果:

      浏览器访问ng发布的192.168.1.119,流量会以Iphash保持的方式分发给后端三个容器的应用上。实现流量的负载分担,业务的负载均衡。

3、docker容器部署过程。

3.1 一些必备的docker命令

      docker image ls //查看本地所有镜像

      docker container ls//查看所有运行的容器

      docker container ls -a //查看所有运行中的容器

      docker container start 容器ID// 启动容器

      docker container stop 容器ID  //停止容器

       docker container run -it 容器ID //以交互的式的方式登录到容器内部

3.2 备份更新yum源   

       mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak   //备份本地yum源

       wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo  //获取阿里yum源配置文件

       yum makecache  //更新cache

3.3 安装docker

       yum install -y docker

3.4 查看版本

3.5 启动docker

    systemctl restart docker

3.6 新建html和mysql两个文件

    用来存放discuz程序和mysql数据库。

    注意:做完此步骤,需要确认关闭selinux,否则会影响mysql php的安装。

 

 

3.7 修改daemon.json

vi /etc/docker/daemon.json

{
"registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"]
}
 

3.8 下载并启动基础镜像(以cnetos6.9为例)

    [root@node1 vol]# docker pull centos:6.9 //下载镜像到本地

   [root@node1 vol]# docker image ls //查看下载的镜像
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
     docker.io/centos    6.9                 2199b8eb8390        11 months ago       195 MB
 

docker run -it --name="zhaojie_centos_bbs" -v /opt/vol/mysql:/var/lib/mysql -v /opt/vol/html:/var/www/html 2199b8eb8390
//以交换式启动容器,同时经mysql 和php的目录分别挂在到新建的mysql 和html文件中。

3.9 安装安装LAMP软件

    //通过3.8的启动,本步骤操作是在容器内部进行。

    [root@27957da4a878 init.d]# yum install openssh-server -y //安装ssh server
   [root@27957da4a878 init.d]# yum install httpd -y   // 安装apahce
   [root@27957da4a878 init.d]# yum install mysql mysql-server -y  // 安装mysql
   [root@node1 vol]# yum install php php-mysql -y  //安装php

3.10 初始化所有程序

 1)初始化ssh
[root@27957da4a878 init.d]# /etc/init.d/sshd start           
Generating SSH2 RSA host key: [  OK  ]
Generating SSH1 RSA host key: [  OK  ]
Generating SSH2 DSA host key: [  OK  ]
Starting sshd: [  OK  ]
[root@27957da4a878 init.d]# 
[root@27957da4a878 init.d]# /etc/init.d/sshd stop
Stopping sshd: [  OK  ]
[root@27957da4a878 init.d]# echo "123456" |passwd root --stdin  //设置root等密码
Changing password for user root.
passwd: all authentication tokens updated successfully.
[root@27957da4a878 init.d]# 

  2)初始化数据库
[root@27957da4a878 init.d]#  /etc/init.d/mysqld start
Starting mysqld:  [  OK  ]
[root@27957da4a878 init.d]# mysql

mysql> grant all on *.* to root@'%' identified by '123'; //设置mysql远程登录信息
Query OK, 0 rows affected (0.00 sec)

mysql> grant all on *.* to discuz@'%' identified by '123';
Query OK, 0 rows affected (0.00 sec)

mysql> create database discuz;  // 新建discuz数据库,
Query OK, 1 row affected (0.00 sec)

 3)初始化apahce
[root@27957da4a878 init.d]# /etc/init.d/httpd start
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2 for ServerName
[  OK  ]
 

 3.11 制作第一版镜像(具备LAMP环境)  

    [root@node1 ~]# docker commit 27957da4a878 zhaojie/centos6.9_lamp_v1 
    sha256:54689b0e1a4f3e46b73a976773c44a8803b54400867ffdd0c8ebbaecd52b6af6
    [root@node1 ~]# docker image ls
    REPOSITORY                        TAG                 IMAGE ID            CREATED             SIZE
     zhaojie/centos6.9_lamp_v1   latest              54689b0e1a4f        6 seconds ago       400 MB
      docker.io/centos                   6.9                 2199b8eb8390        11 months ago       195 MB


3.12 根据第一版镜像,启动新容器

3.13 删除discuz安装程序,制作第二版LAMP+bbs镜像

 1)  discuz程序上传到192.168.1.123的/html目录中。

 2)制作镜像

[root@node1 html]# docker commit 7ff3f3f7ab17 zhaojie/centos6.9_sshd_lamp_bbs:v1
sha256:c52a25a18df77098ffbbf077f2b2247513c1c861955e52358103ea75b879be43

[root@node1 html]# docker image ls -a
REPOSITORY                                 TAG                 IMAGE ID            CREATED             SIZE
zhaojie/centos6.9_sshd_lamp_bbs   v1                  c52a25a18df7        10 seconds ago      505 MB
zhaojie/centos6.9_lamp_v1             latest              54689b0e1a4f        3 hours ago         400 MB
docker.io/centos                               6.9                 2199b8eb8390        11 months ago       195 MB

3.14 创建启动脚本

   注意:此步骤的目的是容器启动后自动启动myslq httpd进程,同时使用sshd -D命令夯在后台运行。

   这个脚本放在html目录中,赋予可执行权限。

   [root@docker html]# cd /opt/vol/html
   [root@docker html]# cat init.sh
   #!/bin/bash
   /etc/init.d/mysqld
   /etc/init.d/httpd
   /usr/sbin/sshd -D
   [root@node1 html]# 

3.15 根据第二版镜像启动容器,映射端口,自动启动多服务

[root@node1 html]# docker container run -d --name="zhaojie_bbs_1" -v /opt/vol/mysql:/var/lib/mysql -v /opt/vol/html:/var/www/html -p 2222:22 -p 8888:80 -p 33060:3306 c52a25a18df7 /var/www/html/init.sh


88b0382947bb6a106b6aca865ac63675f943b45f1e9ddf0975237ae159aada74
[root@node1 html]# 

run -d // 使用守护进程方式启动

-p 2222:22 -p 8888:80 -p 33060:3306  //分别以2222,8888,33060发布容器的22,80,3306端口

3.16 根据3.15启动命令模板,分别启动第二 三个容器

 启动三个容器后结果如下

3.17 客户端访问测试

 打开三个浏览器分别输入  http://192.168.1.123:8888/install  http://192.168.1.123:8881/install  http://192.168.1.123:8883/install

安装discuz程序。程序部署好后,访问首页如下:

 

 

至此,三个容器搭建完毕,

 

3.18 此环境容器小结

 

4 nginx安装配置

4.1 ng的安装

 略

4.2 ng的配置

 

5 docker 网络简介

 待补充

6 K8S 简介

 待补充

 

  

 

    

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本教程将介绍如何使用Docker搭建Nacos集群,并通过Nginx进行反向代理实现负载均衡。 准备工作: 1. 安装DockerDocker Compose 2. 准备三台服务器,分别作为Nacos集群的三个节点 步骤一:下载Nacos镜像 在每个服务器上执行以下命令下载Nacos镜像: ``` docker pull nacos/nacos-server:latest ``` 步骤二:创建Docker Compose文件 在任意一台服务器上创建一个文件夹,命名为nacos,进入该文件夹并创建docker-compose.yml文件,内容如下: ``` version: '3' services: nacos1: image: nacos/nacos-server:latest container_name: nacos1 ports: - "8848:8848" environment: - MODE=cluster - NACOS_SERVER_IP=192.168.1.11 restart: always nacos2: image: nacos/nacos-server:latest container_name: nacos2 ports: - "8849:8848" environment: - MODE=cluster - NACOS_SERVER_IP=192.168.1.12 restart: always nacos3: image: nacos/nacos-server:latest container_name: nacos3 ports: - "8850:8848" environment: - MODE=cluster - NACOS_SERVER_IP=192.168.1.13 restart: always ``` 其中,nacos1、nacos2、nacos3分别对应三个节点,分别监听的端口分别为8848、8849、8850。NACOS_SERVER_IP指定了当前节点的IP地址,这个需要根据实际情况进行修改。 步骤三:启动Nacos集群 在nacos文件夹下执行以下命令启动Nacos集群: ``` docker-compose up -d ``` 执行完毕后,可以通过以下命令查看容器启动情况: ``` docker-compose ps ``` 步骤四:配置Nginx反向代理 在任意一台服务器上安装Nginx,并修改配置文件/etc/nginx/nginx.conf,增加如下内容: ``` http { upstream nacos { server 192.168.1.11:8848; server 192.168.1.12:8849; server 192.168.1.13:8850; } server { listen 80; server_name nacos.example.com; location / { proxy_pass http://nacos; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } } ``` 其中,nacos.example.com为Nacos的访问域名,需要根据实际情况进行修改。配置中创建了一个名为nacos的upstream,包括三个节点的IP地址和端口号。在server块中,通过proxy_pass将请求转发到nacos upstream。 重启Nginx生效。 至此,Nacos集群和Nginx反向代理已经搭建完成,可以通过访问http://nacos.example.com:80/进行验证。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值