使用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

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

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

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

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 查看版本

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

3.5 启动docker

systemctl restart docker

3.6 新建html和mysql两个文件

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

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

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

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 根据第一版镜像,启动新容器

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

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启动命令模板,分别启动第二 三个容器

启动三个容器后结果如下

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

3.17 客户端访问测试

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

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

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

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

3.18 此环境容器小结

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

4 nginx安装配置

4.1 ng的安装

4.2 ng的配置

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

5 docker 网络简介

待补充

6 K8S 简介

待补充

原文链接:https://blog.csdn.net/zhaojie0708/article/details/104758937

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享