Java-8-17 新特性

背景介绍

截止目前为止,JDK比较重要的时间节点和版本说明:

  • 1996 JDK1.0
  • 2004 JDK5.0 最重要的一个里程碑式的版本
  • 2014 JDK8.0 排第二的里程碑式的版本 LTS
  • 2017.9 JDK9.0 从此版本开始,每半年发布一个新的版本
  • 2018.9 JDK11 LTS
  • 2021.9 JDK17 LTS


Docker 安装常用软件说明

Tomcat

查询和拉取镜像

Tomcat 的 Docker Hub 下载地址,对于初学者来说,Tomcat 镜像的 Tag 命名看起来像一串乱码(例如 9.0.118-jdk17-corretto-al2),但其实它遵循了极其严谨的“组合式命名规范”。 这串名字是由 4 个核心部分拼接而成的,就像公式一样:[Tomcat版本]-[JDK版本]-[JDK发行版]-[底层操作系统]。如果是生产环境上线,强烈建议选择带有精确三位版本号的标签,例如 9.0.118-jdk17-corretto。这样可以保证无论何时自动化构建(CI/CD)拉取镜像,代码环境都保持绝对一致,避免因为 Tomcat 偷偷升级导致应用崩溃。

Docker 基础(六)- 监控和管理工具 - CIG

CIG 简介

在 Docker 的监控生态中,CIG 是一套堪称经典、久经沙场的轻量级容器监控 “三驾马车” 组合。它由三个著名的开源工具并网组合而成:

  • CcAdvisor(Google 出品:负责收集容器底层的各项硬核指标)
  • IInfluxDB(时序数据库:负责高速存储这些带有时间戳的指标数据)
  • GGrafana(炫酷大屏:负责将数据展现为精美的图形化仪表盘)

虽然现在企业级大集群流行 Prometheus + Grafana 的组合,但对于管理单机或中小型 CentOS 环境,CIG 架构因其部署极快、对内存消耗极小(轻量级)的特点,依然是单机全方位监控的绝对王者。

Docker 基础(五)- 监控和管理工具 - Portainer

简单来说,Portainer 是一个开源的、轻量级的 Docker 容器可视化管理平台。它提供了一个非常直观的 Web 界面,让你不用在终端频繁地敲 docker ps、docker logs、docker rm,直接在浏览器里“ 点点鼠标” 就能全盘掌控本地或远程的 Docker 环境。

核心功能深度拆解

容器全生命周期管理

  • 可视化:列表会用绿、红、黄等颜色直观展示容器的状态(Running, Stopped, Unhealthy),一目了然。
  • 快捷控制:每个容器后面都有原生的 Start、Stop、Restart、Kill、Remove 按钮。
  • 排错神器
    • Logs(日志):点一下就能直接在网页端流式查看容器日志,支持搜索关键词,再也不用在控制台忍受满屏滚动的痛苦。
    • Stats(性能监测):实时查看单个容器的 CPU 占用率、内存消耗、网络 I/O 和磁盘 I/O 的动态折线图。
    • Console(终端控制台):不用在宿主机敲 docker exec -it,在网页上点一下就能直接以 root 或 sh 身份进入容器内部的终端。


镜像一键瘦身与拉取

  • 直观展示宿主机上所有的镜像,包括大小、标签(Tag)、创建时间。
  • 自动标记出哪些镜像是 Unused(未被任何容器使用的闲置镜像),你可以一键勾选并彻底物理粉碎它们,瞬间释放 CentOS 的磁盘空间。
  • 网页端直接输入 mysql:8.4.9 即可一键从 Docker Hub 拉取镜像。


数据卷与网络的套壳透视

  • 帮你把 Docker 那些隐蔽的、由系统托管的匿名/命名数据卷全部罗列出来,能看清它们到底挂载在宿主机的哪个绝对路径下。
  • 图形化展示桥接网络(Bridge,如 backend-net)、宿主机网络(Host)的 IP 分配情况。


Stack 管理

  • Portainer 内置了对 Docker Compose 的原生支持,在里面被称为 Stack(技术栈)。
  • 你可以直接把你的 docker-compose.yml 内容粘贴到它的网页编辑器里,点击部署,它就会在后台自动拉起那一整组微服务。


Portainer 的安装

Portainer 目前分为两个核心版本:

  • Portainer CE(Community Edition - 社区免费版),依然完全免费、开源!我们日常用到的绝大多数核心功能(如:看日志、进控制台、点鼠标开关容器、图形化监控 CPU/内存、部署 Docker Compose/Stack 等)全都在 CE 版里保留着。对于管理单台 CentOS 宿主机或者几个小集群的民工来说,CE 版完全够用。
  • Portainer EE(Business Edition - 商业收费版),通常按照你管理的节点数或容器环境规模来按年计费。主要针对大厂和企业级安全,比如:对接企业内部的身份认证(高级 LDAP/OAuth)、精细到按钮级别的团队权限控制(RBAC)、多租户隔离、安全审计日志(谁在什么时候偷偷重启了容器)以及官方的技术支持。

官方的 “免费 3 个节点” 政策(3 Nodes Free)。Portainer 官方为了吸引开发者体验商业版,推出了一个非常良心的早期鸟计划:

  • 只要你管理的环境不超过 3 个节点(例如:1 台主库 CentOS、1 台从库 CentOS、1 台测试机),你就可以去官方网站直接免费申请一个 Portainer EE(商业版)的授权密钥(License Key)。
  • 这个商业授权可以让你免费、永久地使用商业版的所有高级功能,只要你管理的机器总数不超过 3 台就行。这对于个人开发者或者小工作室来说,属于完美的白嫖福利。

怎么在 CentOS 上确保装的是纯净免费版呢?可以参考 官方的安装文档。由于官方现在大力推行商业版,如果你在网上随便抄别人的安装命令,不小心拉到了 portainer/portainer-ee 镜像,进去之后系统就会强行弹窗让你输入购买的 Key,否则直接锁死不让用。如果你想省心,只想用完全不限机器数量、不需要输入任何 Key 的纯净免费版,在拉取镜像时请死死认准 ce 这个标志:

1
2
3
4
5
6
7
8
9
10
# -v /var/run/docker.sock:/var/run/docker.sock:这行挂载让 Portainer 容器能够直接监听宿主机的 Docker 守护进程(Daemon)。有了它,Portainer 才能挟天子以令诸侯,在容器内部操控外面的所有容器。
# -p 9000:9000:经典的 HTTP 访问端口。
$ docker run -d \
-p 9000:9000 \
-p 9443:9443 \
--name=my_portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest

启动成功后,在你的 Mac 浏览器里直接输入:http://192.168.1.8:9000。第一次访问会提示你设置超级管理员 admin 的密码。选择 Local(本地环境),点击连接。瞬间,你就会看到一个极其精美的仪表盘(Dashboard),上面清晰地写着:当前宿主机有几个运行中的容器、几个镜像、占用了多少卷、网络拓扑结构是怎样的。