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

文章目录

  • 0. 前言
  • 1. 安装并启动 docker
  • 2. 安装并启动 nginx
  • 3. 安装并启动 tomcat
  • 4. 将 nginx 反向代理到 tomcat
  • 5. 参考


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

docker 安装及配置 nginx + tomcat(一):基础安装_第1张图片

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

docker 安装及配置 nginx + tomcat(一):基础安装_第2张图片

  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

docker 安装及配置 nginx + tomcat(一):基础安装_第3张图片

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

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

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

docker 安装及配置 nginx + tomcat(一):基础安装_第4张图片

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

在这里插入图片描述

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

在这里插入图片描述

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

docker 安装及配置 nginx + tomcat(一):基础安装_第5张图片
或者在浏览器上出现:
docker 安装及配置 nginx + tomcat(一):基础安装_第6张图片

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

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

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

ll webapps

如果为空的话,则:

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

再重新刷新浏览器:
docker 安装及配置 nginx + tomcat(一):基础安装_第7张图片

4. 将 nginx 反向代理到 tomcat

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

安装你的真实 Linux 主机 ip 去配置,域名可以自定义:
docker 安装及配置 nginx + tomcat(一):基础安装_第8张图片
ps:Linux 的 ip 如何查看:

ip a
# 或者
ifconfig

docker 安装及配置 nginx + tomcat(一):基础安装_第9张图片

  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

docker 安装及配置 nginx + tomcat(一):基础安装_第10张图片

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

5. 参考

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

你可能感兴趣的:(云原生相关分享,docker,nginx,tomcat,mac,容器)