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

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

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

SecGuard发布于 2026/3/28更新于 2026/5/2775 浏览
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
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • x86-64 内存架构与 mov 指令详解:寻址机制与栈操作深入剖析
  • LeetCode 经典算法题 Python 实战解析:树、链表与 DP
  • MCP 实战:将 Figma 设计稿自动转换为前端代码
  • 破局新农业数智化困境:低代码不是“捷径”,而是重构生产逻辑的技术密钥
  • Java 泛型与通配符:原理与实战应用
  • C++ 测试与调试:确保代码质量与稳定性
  • GFPGAN 跨平台部署与人脸图像修复实战指南
  • Python3 实用安装教程
  • Obsidian 配合 Github 与坚果云实现笔记同步方案
  • Bright Data MCP:AI 实时网络数据采集方案
  • Spring Cloud 与 Dubbo 架构选型:生态全家桶 vs RPC 特种兵
  • 手搓简易 Linux 进程池:基于管道实现任务分发
  • C++ 模板详解:进阶篇
  • OpenClaw 本地部署及飞书集成教程
  • 低代码平台 Microi 吾码的技术架构与集成实践
  • 基于 Kiro 与 AIClient-2-API 免费调用 Claude 大模型实战
  • Linux 进程间通信进阶:消息队列与信号量
  • B 站网页版自动开启字幕用户脚本(2026 新版适配)
  • SteamVR Unity 插件入门:构建沉浸式 VR 应用实战
  • Google Stitch 工具简介、安装与实战案例详解

相关免费在线工具

  • 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