发布内网的docker容器和MySQL和nginx服务

项目名称:
发布内网的docker容器的MySQL和nginx服务

项目环境:
1、两台虚拟机一台作为网关服务器(本次实验使用的是centos7系统),一台作为内网服务器(本次实验使用的是centos8系统)。两台虚拟机使用的模式都是桥接模式。
2、docker 20.10.8
3、MySQL5.7.35,nginx1.21.1

项目描述:
模拟企业的环境发布内网的服务器同时也让内网的服务器可以上网,使用docker容器技术构建自己的web和MySQL应用。

项目步骤(实现思路):
1、规划各个服务器的ip地址以及他们的拓扑结构
2、安装好2台服务器的系统,根据拓扑图的规划区配置2台机器的ip地址,安装好docker软件。
3、在网关服务器上实现SNAT策略让内网的服务器可以接通外网,验证SNAT策略是否实现。
4、在内网服务器上使用docker启动nginx和MySQL服务,在网关服务器上实现DNAT策略让外网的服务器接通内网。
5、在其他机器上测试发布的web和MySQL服务,使用curl和chrome,SQLyog等测试工具进行测试。

**

第一步(规划网络):

**
拓扑图结构如下:
发布内网的docker容器和MySQL和nginx服务_第1张图片

**

第二步(下载docker软件以及按照规划的网络进行ip配置)

**
一、安装docker软件:

进入docker官方:docker官方网站在Developers选项中选择Docs选项
发布内网的docker容器和MySQL和nginx服务_第2张图片

选择Download and install

发布内网的docker容器和MySQL和nginx服务_第3张图片
选择Docker for Linux
发布内网的docker容器和MySQL和nginx服务_第4张图片
选择CentOS
发布内网的docker容器和MySQL和nginx服务_第5张图片
操作根据官方文档进行操作:
(a)
yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine

扫描并清除虚拟机中旧版本的docker,我的虚拟机中并没有安装过docker软件因此结果如下:
发布内网的docker容器和MySQL和nginx服务_第6张图片
(b)添加仓库文件

		yum install yum-utils -y

安装成功结果如下:
发布内网的docker容器和MySQL和nginx服务_第7张图片
(c)添加docker官方的yum仓库文件(建议添加阿里云的镜像docker仓库,速度更快)

添加docker官方仓库文件:
yum-config-manager \\
--add-repo \\
https://download.docker.com/linux/centos/docker-ce.repo

添加阿里云镜像docker仓库:
yum-config-manager \\
 --add-repo \\
 http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

添加成功后结果如下:
发布内网的docker容器和MySQL和nginx服务_第8张图片

(d)安装docker软件:

yum install docker-ce docker-ce-cli containerd.io 

安装结果如下:
发布内网的docker容器和MySQL和nginx服务_第9张图片

二、按照规划好的网络进行相关ip配置

(a)网关服务器ip配置如下:

发布内网的docker容器和MySQL和nginx服务_第10张图片

(b)内网服务器配置如下:
发布内网的docker容器和MySQL和nginx服务_第11张图片

此时内网是无法到达外网的,用ping命令查看,结果如下:
在这里插入图片描述
**

第三步(在网关服务器上启用SNAT策略)*

编写如下脚本并且运行:
发布内网的docker容器和MySQL和nginx服务_第12张图片

此时看到内网服务器ping通外网代表SNAT策略搭建成功:
发布内网的docker容器和MySQL和nginx服务_第13张图片

第四步(在内网服务器启动docker容器发布nginx和Mysql服务)

(a)使用docker容器发布nginx服务和Mysql服务

docker容器发布内网的nginx服务:

	docker run --name ztq-nginx -v /web:/usr/share/nginx/html:ro -d -p 8080:80  daocloud.io/nginx
	
docker容器发布内网的mysql服务:
	docker run --name ztq-mysql -e MYSQL_ROOT_PASSWORD='123456' -d -p 3306:3306 mysql:5.7.35

(b)在网关服务器上发布DNAT策略

编写如下脚本并且运行:
发布内网的docker容器和MySQL和nginx服务_第14张图片


第五步(验证内网服务器发布是否成功)


(a)使用360浏览器验证nginx服务是否发布成功
发布内网的docker容器和MySQL和nginx服务_第15张图片

(b)使用SQLyog工具验证mysql服务是否发布成功
发布内网的docker容器和MySQL和nginx服务_第16张图片

项目心得:

1、看似简单实则问题很多,一个配置写错全盘皆输,本次项目让我知道了做项目之前不仅要提前规划好所有的网络配置,而且在配置时要细心再细心。
2、在配置SNAT、DNAT策略的时候不能配错且不能对牛弹琴,策略是配置在网关服务器上而不是内网服务器。
3、安装docker软件让我深刻体会到了官方文档的重要性,学习的时候参照官方提供的信息要比自己摸索好的多。

你可能感兴趣的:(docker,mysql,nginx)