docker-部署Nginx以及Tomcat

article/2025/7/15 4:11:18

一、docker 部署Nginx

1、搜索镜像(nginx)

[root@localhost /]# docker search nginx
Error response from daemon: Get "https://index.docker.io/v1/search?q=nginx&n=25": dial tcp 192.133.77.133:443: connect: connection refused

简单说一下可能导致该报错的原因:(这里search失败不影响pull)

1、不同服务端点

  • docker search: 访问 index.docker.io/v1/search (旧版API,IP为199.16.156.71
  • docker pull:访问 registry-1.docker.io(新版V2 API,使用不同的IP/CDN)

  • search 和 pull命令 可能位于不同的服务器集群,受网络策略影响不同。

2、网络限制

  • 防火墙或安全组拦截了目标IP (199.16.156.71:443
  • 公司网络/代理可能仅允许部分 Docker 服务(如拉取镜像),但禁止搜索服务。
  • DNS 污染或本地路由问题导致特定 IP 无法访问。

3、Docker 配置问题

  • 代理配置未正确应用到所有服务(如只对 registry-1.docker.io 生效)。
  • Docker 守护进程的 DNS 配置错误。

2、拉取nginx镜像

[root@localhost /]# docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
c353fd29d8c5: Pull complete 
98b095d7d2b4: Pull complete 
af5f0e3644c1: Pull complete 
Digest: sha256:fad8e1cd52e24bce7b72cd7cb674a2efad671647b917055f5bd8a1f7ac9b1af8
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest

3、查看镜像 -- 是否有nginx

[root@localhost /]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
hello-world   latest    74cc54e27dc4   4 months ago   10.1kB
centos        latest    5d0da3dc9764   3 years ago    231MB
nginx         latest    3f8a4339aadd   7 years ago    108MB

4、启动nginx

[root@localhost /]# docker run -d --name naginx01 -p 3344:80 nginx
b8ff70ab44d191d3b03d9843b3f8b9e4333911acab48ee3f3f0a3d529736b27c

参数解释

  • -d(detach)
    • 👉 作用:后台运行容器(守护进程模式)
    • ✅ 不阻塞当前终端
    • ✅ 容器在后台持续运行
    • ❌ 不加此参数:容器会占用当前终端(需用 Ctrl+P+Q 退出)
  • -- name naginx01 (这里为啥是naginx01?因为敲代码的时候误触了)
    • 👉 作用:为容器指定唯一名称
    • ✅ 自定义标识:naginx01(可替换为其他名称)
    • ✅ 替代 Docker 生成的随机名称(如 festive_mcclintock
    • ✅ 后续操作可直接用名称(无需容器ID):
    • docker stop naginx01   # 停止容器
      docker logs naginx01   # 查看日志
  • -p 3344:80(publish)

    👉 作用:端口映射(主机端口:容器端口

    部分说明
    3344主机端口(可自定义)
    80容器内部端口

    ✅ 效果:
    访问 http://主机IP:3344 → 流量转发 → 容器的 80 端口
    ❗ 常见问题:

  • 若主机端口被占用,需改为空闲端口(如 -p 8080:80

  • 安全组/防火墙需放行主机端口

端口暴露的概念

5、查看运行中的容器 

[root@localhost /]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                                   NAMES
b8ff70ab44d1   nginx     "nginx -g 'daemon of…"   5 seconds ago   Up 4 seconds   0.0.0.0:3344->80/tcp, :::3344->80/tcp   naginx01

6、访问服务(本地测试)

[root@localhost /]# curl localhost:3344
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>body {width: 35em;margin: 0 auto;font-family: Tahoma, Verdana, Arial, sans-serif;}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p><p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p><p><em>Thank you for using nginx.</em></p>
</body>
</html>

7、进入容器

[root@localhost /]# docker exec -it naginx01 /bin/bash
root@b8ff70ab44d1:/# whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
root@b8ff70ab44d1:/# cd /etc/nginx
root@b8ff70ab44d1:/etc/nginx# ls
conf.d		koi-utf  mime.types  nginx.conf   uwsgi_params
fastcgi_params	koi-win  modules     scgi_params  win-utf
root@b8ff70ab44d1:/etc/nginx# 

二、部署Tomcat 

前期工作和Nginx一样

1、访问的ip如何查询

Windows 浏览器访问 localhost 指向 Windows 系统本身,而非 Linux 的 Docker

获取Linux注解的IP地址:

root@localhost /]# ip addr show | grep "inet " | grep -v 127.0.0.1inet 192.168.43.129/24 brd 192.168.43.255 scope global noprefixroute dynamic ens33inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0

在Windows浏览器访问:http://<Linux的IP地址>:3355

2、第一次访问产生的问题

第一次部署好访问: http://192.168.43.129:3355/

这个是正常的,但是为什么呢?

webapps里面是空的。(没有webapp)

阿里云镜像的原因。默认是最小的镜像,所以不必要的都剔除掉了。

保证最小可运行的环境!

webapps.dist中是有root的。

所以我们把webapps.dist中的文件cp到webapps中。就可以解决了;

root@16977d4a3b43:/usr/local/tomcat# cp -r webapps.dist/* webapps

思考问题 :我们以后要部署项目,如果每次都要进入容器,创建webapps内容,就很麻烦,。我们要可以在容器外部提供一个映射路径,webapps,在外部放置项目就自动同步到内部就好了。-v 数据卷


http://www.hkcw.cn/article/ftThKQWSUe.shtml

相关文章

【dshow】VIDEOINFOHEADER2 头文件

VIDEOINFOHEADER2 是用于描述视频流格式的结构体&#xff0c;常用于 Windows 平台的 DirectShow 或 Media Foundation 编程中。 它的定义在以下头文件中&#xff1a; ✅ 所在头文件&#xff1a; #include <dvdmedia.h>&#x1f4cc; 前置说明&#xff1a; VIDEOINFOHEA…

CentOS8.3+Kubernetes1.32.5+Docker28.2.2高可用集群二进制部署

一、准备工作 1.1 主机列表 HostnameHost IPDocker IPRolek8s31.vm.com192.168.26.3110.26.31.1/24master&worker、etcd、dockerk8s32.vm.com192.168.26.3210.26.32.1/24master&worker、etcd、dockerk8s33.vm.com192.168.26.3310.26.33.1/24master&worker、etcd、…

Python----目标检测(Ultralytics安装和YOLO-V8快速上手)

一、Ultralytics安装 网址&#xff1a;主页 -Ultralytics YOLO 文档 Ultralytics提供了各种安装方法&#xff0c;包括pip、conda和Docker。通过 ultralytics pip包安装最新稳定版本的YOLOv8&#xff0c;或克隆Ultralytics GitHub 存储库以获取最新版本。可以使用Docker在隔离的…

Git实战--基于已有分支克隆进行项目开发的完整流程

Git克隆项目开发流程 ✅ 一、完整流程概述✅ 二、详细操作步骤Step 1&#xff1a;克隆仓库&#xff08;如果尚未克隆&#xff09;Step 2&#xff1a;获取远程分支信息并切换到 feature/ 获取所有远程分支Step 3&#xff1a;创建并切换到你的新分支Step 4&#xff1a;开始开发新…

FreeBSD 14.3 候选版本附带 Docker 镜像和关键修复

新的月份已经到来&#xff0c;FreeBSD 14.3 候选发布版 1 现已开放测试&#xff0c;它带来了一些您可能会觉得有用的更新&#xff0c;特别是如果您对Docker容器感兴趣的话。RC1 版本中一个非常受欢迎的改进是&#xff0c;FreeBSD 项目已开始将官方开放容器计划 (OCI) 镜像发布到…

界面分析 - 上

上方&#xff1a;图标&#xff0c;搜索框&#xff0c;功能按钮 左侧&#xff1a;文本显示&#xff0c;自定义按钮&#xff0c;点击自定义按钮的时候&#xff0c;最底下播放条不变&#xff0c;右侧界面随着按钮的改变而改变 右侧&#xff1a;文本信息显示&#xff0c;图片按钮…

电路图识图基础知识-高、低压供配电系统电气系统的继电自动装置(十三)

电气系统的继电自动装置 在供电系统中为保证系统的可靠性&#xff0c;保证重要负荷的不间断供电&#xff0c;常采用自动重合闸装置和备用电源自动投入装置。 1 自动重合闸装置 供配电系统多年运行实践表明&#xff0c;架空线路发生的故障多属于暂时性故障&#xff0c;如雷击…

NVMe协议简介之AXI总线更新

更新AXI4总线知识 AXI4总线协议 AXI4总线协议是由ARM公司提出的一种片内总线协议 &#xff0c;旨在实现SOC中各模块之间的高效可靠的数据传输和管理。AXI4协议具有高性能、高吞吐量和低延迟等优点&#xff0c;在SOC设计中被广泛应用 。随着时间的推移&#xff0c;AXI4的影响不…

机器学习:支持向量机(SVM)原理解析及垃圾邮件过滤实战

一、什么是支持向量机&#xff08;SVM&#xff09; 1. 基本概念 1.1 二分类问题的本质 在机器学习中&#xff0c;分类问题是最常见的任务之一。最简单的情况就是二分类&#xff1a;比如一封邮件是“垃圾邮件”还是“正常邮件”&#xff1f;一个病人是“患病”还是“健康”&a…

数据库系统概论(十二)SQL 基于派生表的查询 超详细讲解(附带例题表格对比带你一步步掌握)

数据库系统概论&#xff08;十二&#xff09;SQL 基于派生表的查询 超详细讲解&#xff08;附带例题表格对比带你一步步掌握&#xff09; 前言一、什么是派生表&#xff1f;二、派生表的使用示例场景1&#xff1a;分组统计后过滤数据场景2&#xff1a;替代临时表查询 三、SELEC…

二、Sqoop 详细安装部署教程

作者&#xff1a;IvanCodes 日期&#xff1a;2025年6月2日 专栏&#xff1a;Sqoop教程 Apache Sqoop 是一个强大的工具&#xff0c;用于在 Hadoop (HDFS, Hive, HBase) 与关系型数据库 (如 MySQL, PostgreSQL, Oracle) 之间高效传输数据。本教程将详细指导您如何根据官方网站截…

【烧脑算法】不定长滑动窗口:从动态调整到精准匹配以灵活特性实现高效破题

目录 求最长/最大 2730. 找到最长的半重复子字符串 2779. 数组的最大美丽值 1838. 最高频元素的频数 2516. 每种字符至少取 K 个 2831. 找出最长等值子数组 求最短/最小 1234. 替换子串得到平衡字符串 2875. 无限数组的最短子数组 76. 最小覆盖子串 632. 最小区间 …

一步一步配置 Ubuntu Server 的 NodeJS 服务器详细实录——3. 服务器软件更新,以及常用软件安装

前言 前面&#xff0c;我们已经 安装好了 Ubuntu 服务器系统&#xff0c;并且 配置好了 ssh 免密登录服务器 &#xff0c;现在&#xff0c;我们要来进一步的设置服务器。 那么&#xff0c;本文&#xff0c;就是进行服务器的系统更新&#xff0c;以及常用软件的安装 调整 Ubu…

JSP、HTML和Tomcat

9x9上三角乘法表 乘法表的实现 <% page contentType"text/html;charsetUTF-8" language"java" %> <!DOCTYPE html> <html> <head><title>99 上三角乘法表</title><style>body {font-family: monospace;padding…

概率统计:AI大模型的数学支柱

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家、CSDN平台优质创作者&#xff0c;高级开发工程师&#xff0c;数学专业&#xff0c;10年以上C/C, C#, Java等多种编程语言开发经验&#xff0c;拥有高级工程师证书&#xff1b;擅长C/C、C#等开发语言&#xff0c;熟悉Java常用开…

打造极致计算器:HTML+Tailwind+DaisyUI实战

一、计算器总体描述 创建一个在线计算器来实现基础数学运算功能&#xff0c;通过单一页面集成数字按钮、运算符按钮和显示结果区域&#xff0c;界面采用简洁直观的布局设计&#xff0c;按钮排列合理且提供即时运算反馈&#xff0c;确保计算逻辑准确和良好的按键响应体验&#x…

使用 HTML + JavaScript 实现图片裁剪上传功能

本文将详细介绍一个基于 HTML 和 JavaScript 实现的图片裁剪上传功能。该功能支持文件选择、拖放上传、图片预览、区域选择、裁剪操作以及图片下载等功能&#xff0c;适用于需要进行图片处理的 Web 应用场景。 效果演示 项目概述 本项目主要包含以下核心功能&#xff1a; 文…

【存储基础】存储设备和服务器的关系和区别

文章目录 1. 存储设备和服务器的区别2. 客户端访问数据路径场景1&#xff1a;经过服务器处理场景2&#xff1a;客户端直连 3. 服务器作为"中转站"的作用 刚开始接触存储的时候&#xff0c;以为数据都是存放在服务器上的&#xff0c;服务器和存储设备是一个东西&#…

SwinTransformer改进(13):融合CPCA注意力

1.创新点介绍 引言 本文将深入解析一个创新的CNN模型架构,它巧妙地将Swin Transformer与自定义的通道-位置交叉注意力(CPCA) 模块相结合。这种设计在保持Transformer强大特征提取能力的同时,通过注意力机制增强了模型对关键特征的聚焦能力。 1. CPCA注意力模块 class CP…

乌方提议6月底前俄乌进行下一轮谈判 等待俄方回应

6月2日,俄乌第二轮谈判在伊斯坦布尔的契拉昂宫举行。乌克兰国防部长乌梅罗夫表示,乌克兰提议在6月底之前再次与俄方会面,但俄方尚未对此做出回应。此次谈判由土耳其外长费丹主持。俄方代表团团长是俄总统助理梅金斯基,成员包括俄副外长加卢津、俄武装力量总参谋部总局局长科…