文章目录

0. 前言1. 安装并启动 docker2. 安装并启动 nginx3. 安装并启动 tomcat4. 将 nginx 反向代理到 tomcat5. 参考

0. 前言

本文在 Centos 上从零安装 docker,以及基于 docker 安装 nginx + tomcat,实现简单的反向代理功能

Mac 环境需要安装 VMware Fusion 虚拟机的,参考这篇文章

1. 安装并启动 docker

安装依赖

yum install -y yum-utils device-mapper-persistent-data lvm2

配置远程镜像仓库

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装 docker

# 查看版本

yum list docker-ce --showduplicates | sort -r

# 安装指定版本

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

设置自启动 docker 并查看运行状态

systemctl enable docker

systemctl restart docker

systemctl status docker

验证 docker

docker -v

2. 安装并启动 nginx

下载镜像

docker pull nginx:1.25

创建容器挂载目录

cd /root

mkdir nginx

cd nginx/

mkdir conf

docker run -d --name nginx nginx:1.25

docker cp nginx:/etc/nginx/nginx.conf /root/nginx/conf/nginx.conf

docker cp nginx:/etc/nginx/conf.d /root/nginx/conf/conf.d

docker cp nginx:/usr/share/nginx/html/ /root/nginx

删除容器

docker rm -f nginx

重新启动容器,这里用挂载的方式启动 nginx 容器

docker run -d -p 80:80 --name nginx --privileged --restart always -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /root/nginx/conf/conf.d:/etc/nginx/conf.d -v /root/nginx/html:/usr/share/nginx/html -v /root/nginx/log:/var/log/nginx nginx:1.25

3. 安装并启动 tomcat

查看 tomcat

docker search tomcat

下载镜像

# 不建议

docker pull tomcat

这里默认下载的是最近版本的 tomcat 镜像。建议指定特定版本的 tomcat 镜像,例如:

docker pull tomcat:9.0

查看下载的镜像

docker images

运行容器

docker run -d -p 8080:8080 --name tomcat tomcat:9.0

查看 tomcat 容器

docker ps |grep tomcat

查看 tomcat 是否正常运行。

curl localhost:8080

或者在浏览器上出现:

出现这种情况,是由于 tomcat 配置为空,进入到第七步

进入 tomcat 容器

docker exec -it tomcat bash

查看 webapps 目录是否为空

ll webapps

如果为空的话,则:

# 进入到 webapps.dist 目录下

cd webapps.dist/

# 将目录拷贝到 webapps 目录下

cp -r * ../webapps

再重新刷新浏览器:

4. 将 nginx 反向代理到 tomcat

在 host 配置域名。 我是 Mac 上用虚拟机运行 Linux,Mac 安装虚拟机教程:《Mac 安装 VMware Fusion 虚拟机软件》。所以对于我而言需要在 Mac 主机上配置 Linux 主机域名,以便在 Mac 浏览器中访问。对于 Windows 用虚拟机的话同样需要配置 hosts 域名。以 Mac 为例:

sudo vim /etc/hosts

安装你的真实 Linux 主机 ip 去配置,域名可以自定义: ps:Linux 的 ip 如何查看:

ip a

# 或者

ifconfig

在 nginx 中配置 server 配置文件 在安装启动 nginx 的章节中,用挂载文件的方式启动了,因此仅需在宿主机上修改配置文件即可:

vi /root/nginx/conf/conf.d/default.conf

# 当然也可以进入到 nginx 容器中去修改配置

docker exec -it nginx bash

vi /etc/nginx/conf.d/default.conf

重启 nginx 服务

# 如果已经在 nginx 容器里的话,直接执行 nginx -s reload 即可

docker exec -it nginx nginx -s reload

查看效果 访问宿主机的80端口,则会转到 nginx 80端口,然后根据配置转到 tomcat 服务器上: 后续实现 nginx 挂载多台 tomcat 服务器,进一步可查阅 《docker 安装及配置 nginx + tomcat(二):负载均衡》

5. 参考

《安装 docker》 《访问 tomcat 404》 《docker 安装及配置 nginx + tomcat(二):负载均衡》

文章链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: