跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Javajava

Ubuntu 22.04/24.04 安装 Docker 及配置 Java、MySQL、Tomcat

在 Ubuntu 22.04 和 24.04 系统中安装 Docker 引擎及配置镜像源的方法,详细演示了 JDK 17 的本地安装与环境变量配置,以及通过 Docker 容器化部署 MySQL 8.4.5 和 Tomcat 9 的完整流程,包括数据持久化、端口映射、防火墙设置及远程连接测试。

SecGuard发布于 2026/3/28更新于 2026/9/10123 浏览
Ubuntu 22.04/24.04 安装 Docker 及配置 Java、MySQL、Tomcat

一、准备工作

准备条件:服务器操作系统 Ubuntu 22.04 64 位 UEFI 版 / Ubuntu 24.04 64 位。

使用工具:SSH 客户端(如 FinalShell)。

Docker 基本使用指令:

  • 停止容器:docker stop <container_name>
  • 启动容器:docker start <container_name>
  • 重启容器:docker restart <container_name>
  • 删除容器(需先停止):docker rm <container_name>
  • 查看所有容器:docker ps -a

注:示例中的容器名称仅为示意,可替换为实际容器名称或 ID。

二、安装 Docker

(一)安装 Docker

  1. 打开 SSH 工具,连接服务器 IP。

连接示意图

  1. 卸载旧版本(若未安装可跳过)
sudo apt-get remove docker docker-engine docker.io containerd runc
  1. 更新 apt 包索引
sudo apt-get update

更新索引

  1. 安装 apt 依赖包
sudo apt-get install \
 apt-transport-https \
 ca-certificates \
 curl \
 gnupg-agent \
 software-properties-common

输入 Y 确认。

确认安装

如有其他包更新提示,执行:

sudo apt-get upgrade
  1. 添加 Docker 官方 GPG 密钥
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc

添加密钥

  1. 设置稳定版仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

设置仓库

  1. 安装 Docker Engine-Community
sudo apt-get update

更新索引

  1. 创建自定义 Docker 安装目录
sudo mkdir -p /usr/local/docker

创建目录

  1. 安装 Docker Engine-Community 到自定义路径

注意:Docker 默认安装路径在 /var/lib/docker,安装后需迁移数据。

sudo apt-get install -y docker-ce docker-ce-cli containerd.io

按提示输入 Y 或回车确认。

安装过程

  1. 停止 Docker 服务
sudo systemctl stop docker

停止服务

  1. 备份原有 Docker 数据(如果存在)
if [ -d "/var/lib/docker" ]; then sudo cp -r /var/lib/docker /var/lib/docker.backup; fi

备份数据

  1. 创建符号链接,将 Docker 数据目录指向自定义路径
sudo ln -sf /usr/local/docker /var/lib/docker

创建链接

(二)镜像设置

确保 Docker 已安装成功。

  1. 启动 Docker 服务
sudo systemctl start docker
  1. 查看 Docker 版本
sudo docker version

查看版本

  1. 进入 Docker 配置目录
cd /etc/docker
sudo mkdir -p /etc/docker

进入目录

  1. 创建 daemon.json 配置文件
{
    "registry-mirrors": [
        "https://docker.1panel.live",
        "https://hub.rat.dev"
    ],
    "data-root": "/usr/local/docker"
}

命令:

sudo tee /etc/docker/daemon.json > /dev/null <<EOF
{
    "registry-mirrors": [
        "https://docker.1panel.live",
        "https://hub.rat.dev"
    ],
    "data-root": "/usr/local/docker"
}
EOF

配置文件

  1. 重新加载配置并重启 Docker
sudo systemctl daemon-reload
sudo systemctl restart docker

重启服务

  1. 验证安装和配置
sudo docker info | grep "Docker Root Dir"

验证路径

  1. 拉取 hello-world 镜像
sudo docker pull hello-world

拉取镜像

  1. 运行镜像
sudo docker run hello-world

运行镜像

三、安装 JDK 17

  1. 准备工作

在 /usr/local 路径下创建 java 文件夹,上传 JDK 压缩包 jdk-17.0.12_linux-x64_bin.tar.gz。

文件上传

  1. 解压 JDK
tar -zxvf jdk-17.0.12_linux-x64_bin.tar.gz

解压完成

  1. 配置环境变量

编辑配置文件:

vim /etc/profile

按 i 进入插入模式,添加以下内容至末尾:

export JAVA_HOME=/usr/local/java/jdk-17.0.12
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}

编辑配置

保存退出(按 Esc,输入 :wq!):

保存退出

  1. 使配置生效
source /etc/profile

生效配置

  1. 检查是否安装成功
java -version

版本信息

四、Docker 中安装 MySQL

  1. 检查 Docker 运行状态
sudo systemctl status docker

运行状态

  1. 创建数据持久化存储目录
sudo mkdir -p /usr/local/mysql/data
sudo chmod -R 777 /usr/local/mysql/data
cd /usr/local/mysql

创建目录

  1. 拉取 MySQL 8.4.5 镜像
docker pull mysql:8.4.5

拉取进度

拉取成功

  1. 创建 MySQL 容器
sudo docker run -d \
 --name mysql_8.4.5 \
 -p 3306:3306 \
 -e MYSQL_ROOT_PASSWORD=123456 \
 -v /usr/local/mysql/data:/var/lib/mysql \
 mysql:8.4.5

参数说明:

  • --name:容器名称
  • -p:端口映射
  • -e:环境变量(root 密码)
  • -v:数据卷挂载

创建容器

  1. 检查容器运行状态
sudo docker ps | grep mysql_8.4.5

容器状态

  1. 启动 MySQL 容器
docker start mysql_8.4.5

启动容器

  1. 进入 MySQL 命令行
docker exec -it mysql_8.4.5 mysql -u root -p

输入密码(步骤 4 设置的 123456)。

登录界面

登录成功

  1. 退出 MySQL
exit

退出提示

  1. 设置自动重启策略
docker update --restart=always mysql_8.4.5

设置重启

  1. 检查重启策略
docker inspect -f '{{.HostConfig.RestartPolicy.Name}}' mysql_8.4.5

应显示 always。

检查策略

  1. 开放防火墙端口
sudo ufw allow 3306/tcp
sudo ufw allow 3306/udp
sudo ufw reload
sudo ufw status
  1. 再次查看容器状态
sudo docker ps | grep mysql_8.4.5

最终状态

  1. 远程连接测试

远程连接

五、Docker 中安装 Tomcat

准备条件:已安装 Docker,并在云服务器安全组开放端口(如 8080)。

阿里云服务器端口配置: 登录阿里云控制台 — 云服务器 ECS — 安全组 — 管理规则 — 手动添加(授权策略:允许,优先级:1,协议类型:TCP,目的端口:8080,授权对象:0.0.0.0/0)。

安全组配置

安全组规则

规则详情

  1. 拉取 Tomcat 9 镜像
docker pull tomcat:9

拉取镜像

  1. 创建自定义目录并设置权限
mkdir -p /usr/local/tomcat/{webapps,conf,logs,temp,work}
chmod -R 777 /usr/local/tomcat

目录结构

  1. 启动 Tomcat 容器

先启动临时容器复制默认配置文件:

docker run --name temp-tomcat tomcat:9 \
 sh -c "mkdir -p /tmp/conf/ && cp -r /usr/local/tomcat/conf/* /tmp/conf/"

临时容器

将配置文件复制到宿主机:

docker cp temp-tomcat:/tmp/conf/. /usr/local/tomcat/conf/

复制配置

正式启动容器:

docker run -d \
 --name tomcat9 \
 -p 8080:8080 \
 -v /usr/local/tomcat/webapps:/usr/local/tomcat/webapps \
 -v /usr/local/tomcat/conf:/usr/local/tomcat/conf \
 -v /usr/local/tomcat/logs:/usr/local/tomcat/logs \
 -v /usr/local/tomcat/temp:/usr/local/tomcat/temp \
 -v /usr/local/tomcat/work:/usr/local/tomcat/work \
 --restart=always \
 tomcat:9

启动容器

  1. 复制默认欢迎页
docker cp tomcat9:/usr/local/tomcat/webapps.dist/ROOT /usr/local/tomcat/webapps/

复制页面

  1. 验证容器状态
docker ps | grep tomcat9

显示 Up 表示启动成功。

容器状态

访问地址:http://服务器 IP:8080

访问结果

目录

  1. 一、准备工作
  2. 二、安装 Docker
  3. (一)安装 Docker
  4. (二)镜像设置
  5. 三、安装 JDK 17
  6. 四、Docker 中安装 MySQL
  7. 五、Docker 中安装 Tomcat

更多推荐文章

查看全部
  • DeepSeek 深度使用指南:提示词技巧与本地知识库搭建
  • 利用 AI 与轻量化工具优化开发团队协同流程
  • AIGC 探索:AI 生成内容的未来市场与技术应用
  • LightRAG 框架介绍与 WebUI 本地部署应用
  • Rocky Linux 9.4 部署 Hadoop 3.4.2 高可用集群
  • Vivado 许可证获取与配置实战指南
  • 基于 Java Spring Boot 的高校网络教学系统设计与实现
  • OpenClaw 开源机械爪的设计原理与应用前景
  • Agent AI 技术原理与工程实践指南
  • GitHub 十大 Claude Skills 推荐与效率提升指南
  • 开源大模型涨价策略分析:Llama 3.5 与 GLM-5 商业化博弈
  • Linux 系统 MinIO 对象存储部署与配置指南
  • AIGC、Agent 与 MCP 概念解析及关系梳理
  • Python 实现一个简单的持久化缓存系统
  • 基于 MS-Swift 微调 Qwen 大模型实战指南
  • EhViewer 安卓端 E-Hentai 漫画浏览工具安装与使用教程
  • VSCode 禁用 GitHub Copilot 功能指南
  • AI 幻觉深度解析:成因、风险与应对策略
  • ROS2+Gazebo+PX4 环境搭建与仿真起飞指南
  • 前端精确数字运算方案:使用 BigNumber.js 解决 JavaScript 精度问题

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online