docker 安装及配置 nginx + tomcat(一):基础安装


0. 前言

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

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

1. 安装并启动 docker

  1. 安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
  1. 配置远程镜像仓库
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. 安装 docker
# 查看版本
yum list docker-ce --showduplicates | sort -r 
# 安装指定版本
yum install -y docker-ce-cli-24.0.7 docker-ce-24.0.7 containerd.io

在这里插入图片描述

  1. 设置自启动 docker 并查看运行状态
systemctl enable docker
systemctl restart docker
systemctl status docker

在这里插入图片描述

  1. 验证 docker
docker -v

在这里插入图片描述

2. 安装并启动 nginx

  1. 下载镜像
docker pull nginx:1.25
  1. 创建容器挂载目录
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
  1. 删除容器
docker rm -f nginx
  1. 重新启动容器,这里用挂载的方式启动 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

  1. 查看 tomcat
docker search tomcat

在这里插入图片描述

  1. 下载镜像
# 不建议
docker pull tomcat

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

docker pull tomcat:9.0
  1. 查看下载的镜像
docker images 

在这里插入图片描述

  1. 运行容器
docker run -d -p 8080:8080 --name tomcat tomcat:9.0

在这里插入图片描述

  1. 查看 tomcat 容器
docker ps |grep tomcat

在这里插入图片描述

  1. 查看 tomcat 是否正常运行。
curl localhost:8080

在这里插入图片描述
或者在浏览器上出现:
在这里插入图片描述

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

  1. 进入 tomcat 容器
docker exec -it tomcat bash

在这里插入图片描述
查看 webapps 目录是否为空

ll webapps

如果为空的话,则:

# 进入到 webapps.dist 目录下
cd webapps.dist/
# 将目录拷贝到 webapps 目录下
cp -r * ../webapps

再重新刷新浏览器:
在这里插入图片描述

4. 将 nginx 反向代理到 tomcat

  1. 在 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

在这里插入图片描述

  1. 在 nginx 中配置 server 配置文件
    在安装启动 nginx 的章节中,用挂载文件的方式启动了,因此仅需在宿主机上修改配置文件即可:
vi /root/nginx/conf/conf.d/default.conf
# 当然也可以进入到 nginx 容器中去修改配置
docker exec -it nginx bash
vi /etc/nginx/conf.d/default.conf

在这里插入图片描述

  1. 重启 nginx 服务
# 如果已经在 nginx 容器里的话,直接执行 nginx -s reload 即可
docker exec -it nginx  nginx -s reload
  1. 查看效果
    访问宿主机的80端口,则会转到 nginx 80端口,然后根据配置转到 tomcat 服务器上:
    在这里插入图片描述
    后续实现 nginx 挂载多台 tomcat 服务器,进一步可查阅 《docker 安装及配置 nginx + tomcat(二):负载均衡》

5. 参考

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

  • 28
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是使用 Docker 搭建 NginxTomcat 的步骤: 1. 安装 Docker,可参考官方文档进行安装。 2. 下载 NginxTomcatDocker 镜像,执行以下命令: ``` docker pull nginx docker pull tomcat ``` 3. 创建一个 Docker 网络,让 NginxTomcat 可以相互通信,执行以下命令: ``` docker network create mynetwork ``` 4. 创建一个 Nginx 容器,执行以下命令: ``` docker run --name nginx -d -p 80:80 --network mynetwork nginx ``` `--name` 指定容器名称为 nginx,`-d` 后台运行,`-p` 将容器的80端口映射到主机的80端口,`--network` 指定容器所在的网络为 mynetwork。 5. 创建一个 Tomcat 容器,执行以下命令: ``` docker run --name tomcat -d -p 8080:8080 --network mynetwork tomcat ``` `--name` 指定容器名称为 tomcat,`-d` 后台运行,`-p` 将容器的8080端口映射到主机的8080端口,`--network` 指定容器所在的网络为 mynetwork。 6. 配置 Nginx,将请求转发给 Tomcat,执行以下命令: ``` docker exec -it nginx bash echo "server { listen 80; location / { proxy_pass http://tomcat:8080/; } }" > /etc/nginx/conf.d/default.conf nginx -s reload exit ``` `docker exec -it` 进入 nginx 容器,`echo` 命令将配置写入 Nginx 的默认配置文件,`nginx -s reload` 重新加载配置文件使其生效。 7. 访问 http://localhost 可以看到 Nginx 的欢迎页面,访问 http://localhost:8080 可以看到 Tomcat 的欢迎页面。 至此,NginxTomcatDocker 集成环境搭建完成。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SmallerFL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值