基于docker容器web服务器集群部署
2020-02-08 本文已影响0人
Coding测试
项目架构图解

场景说明
基于docker容器引擎,分别pull nginx的docker镜像、tomcat的docker镜像(具体镜像使用参考官方文档说明 )配置nginx反向代理功能、配置Tomcat集群。实现应用服务器集群部署,提高服务器的承载能力。
- docker官方文档地址
https://hub.docker.com/
docker
在docker官方搜索需要拉取的镜像
docker安装步骤见上篇博客
https://www.jianshu.com/p/fe438fac7cff
具体部署步骤如下:
- 分别拉取nginx、Tomcat的docker镜像
docker pull nginx
docker pull tomcat
- 查看Linux宿主机下的镜像详情
[root@bogon ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat latest b56d8850aed5 23 hours ago 529MB
nginx latest 2073e0bcb60e 5 days ago 127MB
centos latest 589dc4d40385 3 weeks ago 237MB
配置nginx反向代理
- 在宿主机创建nginx目录
mkdir -p /data/nginx/{conf,conf.d,html,log}
[root@bogon nginx]# pwd
/data/nginx
[root@bogon nginx]# ll
总用量 0
drwxr-xr-x. 2 root root 45 2月 7 17:42 conf
drwxr-xr-x. 3 root root 34 2月 7 15:20 html
drwxr-xr-x. 2 root root 39 2月 7 17:43 logs
- 配置nginx反向代理服务器地址
server {
listen 8090;
server_name localhost;
# root /usr/share/nginx/html;
# Load configuration files for the default server block.
# include /etc/nginx/default.d/*.conf;
location / {
proxy_pass http://localhost;
}
upstream localhost{
server 192.168.1.90:8071 weight=1;
server 192.168.1.90:8072 weight=1;
}
- nginx配置文件配置好后,就可以启动docker容器的nginx镜像,加载刚才宿主机下的nginx.conf配合文件和日志。然后启动nginx命令如下:
docker run --name nginx-server -d -p 8070:8090 -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx/logs:/var/log/nginx -d docker.io/nginx
- 启动docker的tomcat镜像,这里我以两个tomcat集群示例。启动命令:
tomcat服务器1:
docker run -d --name=Application-server1 -p 8071:8080 tomcat
tomcat服务器2:
docker run -d --name=Application-server2 -p 8072:8080 tomcat
- 把打包的项目放到webapps下即可。这里简单示例:
[root@bogon conf]# docker exec -it Application-server1 bash
root@c42ed9de5100:/usr/local/tomcat# cd webapps
root@c42ed9de5100:/usr/local/tomcat/webapps# pwd
/usr/local/tomcat/webapps
root@c42ed9de5100:/usr/local/tomcat/webapps# cd index/
root@c42ed9de5100:/usr/local/tomcat/webapps/index# cat index.html
<!DOCTYPE html>
<html>
<head>
<title>Application-server1</title>
</head>
<body>
Application-server1
</body>
</html>
-
可以分别通过不同的服务器地址访问已正常访问:
-
查看docker容器的启动详情:
[root@bogon conf]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5fc6a8e02281 nginx "nginx -g 'daemon of…" 22 hours ago Up 22 hours 80/tcp, 0.0.0.0:8070->8090/tcp nginx-server
a92ec9e07f9c tomcat "catalina.sh run" 23 hours ago Up 23 hours 0.0.0.0:8072->8080/tcp Application-server2
c42ed9de5100 tomcat "catalina.sh run" 24 hours ago Up 23 hours 0.0.0.0:8071->8080/tcp Application-server1
db9a8a85bf30 centos "/bin/bash" 3 weeks ago Up 3 weeks 0.0.0.0:8888->80/tcp sx
[root@bogon conf]#
通过nginx反向代理功能,用户访问url:http://192.168.1.90:8070/index/index.html
-
访问页面如下
docker-compose 安装流程
- 拉取镜像
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- 修改配置文件
sudo chmod +x /usr/local/bin/docker-compose
- 查看版本
$ docker-compose --version
- nginx技术二--反向代理
更多技术分享和免费视频资料首发于公众号:请关注微信公众号--Coding测试 获取
docker 构建SpringBoot jar镜像流程
- Dockerfile
# 设置本镜像需要使用的基础镜像
FROM java8
# 把jar包添加到镜像中
ADD java-elf-1.0-SNAPSHOT.jar java-elf-1.0-SNAPSHOT.jar
# 镜像暴露的端口
EXPOSE 8010
RUN bash -c 'touch app.jar'
# 容器启动命令
ENTRYPOINT [java,-jar,app.jar]
# 设置时区
RUN bincp usrsharezoneinfoAsiaShanghai etclocaltime && echo 'AsiaShanghai' etctimezone
- 构建镜像命令
#注意最后的. 代表当前路径
docker build -t test:v1.0 .
- 查看构建后的docker镜像
docker images
- 启动测试容器
docker run -p 8888:8099 -it --name=test test /bin/bash