项目名称:
发布内网的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软件:
进入docker官方:docker官方网站在Developers选项中选择Docs选项
选择Download and install
选择Docker for Linux
选择CentOS
操作根据官方文档进行操作:
(a)
yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine
扫描并清除虚拟机中旧版本的docker,我的虚拟机中并没有安装过docker软件因此结果如下:
(b)添加仓库文件
yum install yum-utils -y
安装成功结果如下:
(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
(d)安装docker软件:
yum install docker-ce docker-ce-cli containerd.io
二、按照规划好的网络进行相关ip配置
(a)网关服务器ip配置如下:
此时内网是无法到达外网的,用ping命令查看,结果如下:
**
(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策略
项目心得:
1、看似简单实则问题很多,一个配置写错全盘皆输,本次项目让我知道了做项目之前不仅要提前规划好所有的网络配置,而且在配置时要细心再细心。
2、在配置SNAT、DNAT策略的时候不能配错且不能对牛弹琴,策略是配置在网关服务器上而不是内网服务器。
3、安装docker软件让我深刻体会到了官方文档的重要性,学习的时候参照官方提供的信息要比自己摸索好的多。