快速部署网站容器化

前言:如今容器化正愈演愈热,未来的一个趋势,不学点容器化东西,怎么能行,技术就是一点点学习积累上去的。今天跟大家分享一个使用docker快速部署网站的案例。

大家都知道部署一个网站,首先你的有数据库存储吧,其次准备好一个网站包。这里呢我结合我自己部署一个网站的案例跟大家阐述下具体步骤细节。
我的网站是一个标准的java开发的web项目,是一个war包,使用tomcat容器进行运行网站。数据库是使用mysql5.7,缓存使用redis4.0.9,操作日志使用的是mongodb3.6.4记录请求日志。

首先你要购买一台linux系统的云主机,同时要购买一个外网ip带宽,这里呢我是购买的比格云
的一台2核/2G内存/2M弹性带宽,接下来的所有操作命令都是基于这台linux(centos 7.2 64位系统)系统进行阐述。

一、环境检查准备

1、如何检查系统环境是否支持docker?
检查内核版本,必须是3.10及以上,我们在系统内执行以下命令:
uname -r
在这里插入图片描述
2、安装docker,跳过确认直接安装
yum install docker -y
在这里插入图片描述

3、查看docker版本,确认是否按照好
docker -v
在这里插入图片描述

4、启动docker
systemctl start docker
5、加入开机启动
systemctl enable docker
在这里插入图片描述

二、如何在docker环境里安装mysql并允许外部程序连接和外挂配置文件

1、拉取mysql5.7镜像
docker pull mysql:5.7
在这里插入图片描述

2、查看确认mysql镜像
docker images
在这里插入图片描述
看到这个信息,说明我们的mysql镜像已经拉取下载成功下来了
3、运行mysql服务
docker run --name 你的服务名字 -e MYSQL_ROOT_PASSWORD=你的密码 -p 3306:3306 -v /data/mysql/data:/var/lib/mysql -v /data/mysql/conf:/etc/mysq/conf.d -d mysql:5.7
在这里插入图片描述
说明:-v xxx:yyy 其中 xxx代表外挂的配置文件, yyy代表容器内的对应目录文件, 如果默认,也可以不需要携带-v 参数;
4、查看mysql容器运行情况
docker ps在这里插入图片描述
可以看到mysql服务运行起来了
5、使用工具连接mysql,这里我使用的是navicat
在这里插入图片描述
如果出现连接不上,请查看你的机器的防火墙是否开启了mysql数据库默认的3306端口
在这里插入图片描述

三、安装redis并指定外部配置文件

1、拉取redis4.0.9镜像
docker pull redis:4.0.9
在这里插入图片描述
2、查看确认redis镜像
docker images
在这里插入图片描述
看到这个信息,说明我们的redis镜像已经拉取下载成功下来了

3、下载redis.conf配置文件,并修改其中的配置项
创建配置文件目录存放redis.conf,文件从官网下载(http://download.redis.io/redis-stable/redis.conf)
这里我修改了几项配置:
bind 127.0.0.1 #注释掉这部分,这是限制redis只能本地访问
protected-mode no #默认yes,开启保护模式,限制为本地访问
daemonize no#默认no,改为yes意为以守护进程方式启动,可后台运行,除 非kill进程,改为yes会使配置文件方式启动redis失败
dir ./ #输入本地redis数据库存放文件夹(可选)
appendonly yes #redis持久化(可选)
4、运行redis服务
docker run -d -p 6379:6379 --name redis-server -v /data/redis/conf/redis.conf:/etc/redis/redis.conf -v /data/redis/data:/data/ redis:4.0.9 redis-server --requirepass “你的密码”
5、查看redis容器运行情况
docker ps
在这里插入图片描述
可以看到redis服务运行起来了
6、使用工具连接redis,这里我使用的是redis desktop manager工具
在这里插入图片描述
如果出现连接不上,请查看你的机器的防火墙是否开启了redis数据库默认的6379端口
在这里插入图片描述

四、安装mongo并指定外部配置文件

1、拉取mongo3.6.4镜像
docker pull mongo:3.6.4
在这里插入图片描述
2、查看确认mongo镜像
docker images
在这里插入图片描述
看到这个信息,说明我们的mongo镜像已经拉取下载成功下来了

3、先以无认证方式运行mongo服务
docker run --name mongodb-server -v /usr/local/docker-data/mongodb/data/:/data/db -p 27017:27017 -d mongo:3.6.4

4、查看mongo容器运行情况
docker ps
在这里插入图片描述可以看到mongo服务运行起来了

5、设置mongodb认证(如果不需要认证忽略这一步骤)
@1:先进入后台
docker exec -it mongodb-server /bin/bash
@2:进入mongo
mongo
@3:切换到admin数据库并创建超级管理员
use admin;
db.createUser({user:‘你的用户名’, pwd:‘你的密码’, roles: [{role:“root”, db:“admin”}]});
@4:认证超级管理员
db.auth(‘你的用户名’,‘你的密码’);
@5:退出mongo
exit;
@6:以超级管理员权限重新认证进入
mongo admin -u 你的用户名 -p 你的密码;
@7:最后创建其他库的管理用户
use 你要创建的数据库名;
db.createUser({user:‘设置你的用户名’, pwd:‘设置你的密码’, roles:[{role:“dbOwner”,db:“你上一步骤创建的数据库名”}]});
@8:认证上一步骤的用户
db.auth(‘上一步骤设置的用户名’,‘上一步骤设置的密码’);
@9:退出并删除此mongo容器,重新加入认证进行创建(命令多了一个 --auth)
exit;
exit;
docker stop mongo容器id;
docker rm mongo容器id;
docker run --name mongodb-server -v /usr/local/docker-data/mongodb/data/:/data/db -p 27017:27017 -d mongo:3.6.4 --auth;

6、使用工具连接mongo,这里我使用的是robot 3t工具
在这里插入图片描述
如果出现连接不上,请查看你的机器的防火墙是否开启了mongo数据库默认的27017端口
在这里插入图片描述

五、安装tomcat并指定外部配置文件,部署war启动

1、拉取tomcat镜像
docker pull tomcat:8.5.40
在这里插入图片描述
2、查看确认tomcat镜像
docker images
在这里插入图片描述
看到这个信息,说明我们的tomcat镜像已经拉取下载成功下来了

3、运行tomcat容器
docker run -d --name tomcat-server -p 8966:8966
-v /data/tomcat/apps:/usr/local/tomcat/webapps
-v /data/tomcat/conf/server.xml:/usr/local/tomcat/conf/server.xml
-v /data/tomcat/conf/tomcat-users.xml:/usr/local/tomcat/conf/tomcat-users.xml
-v /data/tomcat/logs:/usr/local/tomcat/logs tomcat:8.5.40

说明:tomcat默认监听80端口,这里因为我的程序启动端口是8966,所以我修改了tomcat 配置文件里的server.xml监听端口改成8966,映射到外部访问你的8966,如果你的程序启动端口是其他的,你也需要把它修改掉
编辑部分server.xml 截图如下:
在这里插入图片描述
4、部署我们的应用
前面我们外挂了包管理目录/data/tomcat/apps
我们只要把war包放到这个目录下,重新restart 容器,会自动解压war包

结语:在前进学习的道路上记录方便以后自己查看回顾,同时也给一些需要的人给予一定的参考;如果关于此问题,不吝您的赐教!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值