跳到主要内容Ubuntu 22.04/24.04 安装 Docker 及配置 Java、MySQL、Tomcat | 极客日志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 的完整流程,包括数据持久化、端口映射、防火墙设置及远程连接测试。
SecGuard4 浏览 一、准备工作
准备条件:服务器操作系统 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
- 打开 SSH 工具,连接服务器 IP。

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

- 安装 apt 依赖包
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
输入 Y 确认。

如有其他包更新提示,执行:
sudo apt-get upgrade
- 添加 Docker 官方 GPG 密钥
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
微信扫一扫,关注极客日志
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
相关免费在线工具
- 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

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
- 安装 Docker Engine-Community
sudo mkdir -p /usr/local/docker
- 安装 Docker Engine-Community 到自定义路径
注意:Docker 默认安装路径在 /var/lib/docker,安装后需迁移数据。
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
sudo systemctl stop docker
if [ -d "/var/lib/docker" ]; then sudo cp -r /var/lib/docker /var/lib/docker.backup; fi
- 创建符号链接,将 Docker 数据目录指向自定义路径
sudo ln -sf /usr/local/docker /var/lib/docker
(二)镜像设置
sudo systemctl start docker
cd /etc/docker
sudo mkdir -p /etc/docker
{
"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
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo docker info | grep "Docker Root Dir"
sudo docker pull hello-world
sudo docker run hello-world
三、安装 JDK 17
在 /usr/local 路径下创建 java 文件夹,上传 JDK 压缩包 jdk-17.0.12_linux-x64_bin.tar.gz。
tar -zxvf jdk-17.0.12_linux-x64_bin.tar.gz
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}
四、Docker 中安装 MySQL
sudo systemctl status docker
sudo mkdir -p /usr/local/mysql/data
sudo chmod -R 777 /usr/local/mysql/data
cd /usr/local/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:数据卷挂载
sudo docker ps | grep mysql_8.4.5
docker exec -it mysql_8.4.5 mysql -u root -p
docker update --restart=always mysql_8.4.5
docker inspect -f '{{.HostConfig.RestartPolicy.Name}}' mysql_8.4.5
sudo ufw allow 3306/tcp
sudo ufw allow 3306/udp
sudo ufw reload
sudo ufw status
sudo docker ps | grep mysql_8.4.5
五、Docker 中安装 Tomcat
准备条件:已安装 Docker,并在云服务器安全组开放端口(如 8080)。
阿里云服务器端口配置:
登录阿里云控制台 — 云服务器 ECS — 安全组 — 管理规则 — 手动添加(授权策略:允许,优先级:1,协议类型:TCP,目的端口:8080,授权对象:0.0.0.0/0)。
mkdir -p /usr/local/tomcat/{webapps,conf,logs,temp,work}
chmod -R 777 /usr/local/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
docker cp tomcat9:/usr/local/tomcat/webapps.dist/ROOT /usr/local/tomcat/webapps/