在Ubuntu22.04和24.04中安装Docker并安装和配置Java、Mysql、Tomcat
目录
一、准备工作
二、安装Docker
(一)安装Docker
(二)镜像设置
三、jdk-17.0.12的安装
三、docker中安装mysql
四、在Docter中安装Tomcat
一、准备工作
准备条件:服务器操作系统Ubuntu 22.04 64位 UEFI版/Ubuntu 24.04 64位
使用工具FinalShell4.3.10
Docker基本使用指令:
停止容器:docker stop mysql-8.4.5
启动容器:docker start mysql-8.4.5
重启容器:docker restart mysql-8.4.5
删除容器(需先停止):docker rm mysql-8.4.5
查看所有容器:docker ps -a
(注:标红部分只是以mysql为例,仅仅指代容器名称,红色部分也可以更换为容器id)
点击下载所需安装包
二、安装Docker
(一)安装Docker
1.打开FinalShell工具,创建一个SSH连接,使用自己的服务器IP连接。
2.卸载旧版本(如果没有安装过就不必执行)
指令:
sudo apt-get remove docker docker-engine docker.io containerd runc
3.更新 apt 包索引。
指令:
sudo apt-get update
4.安装 apt 依赖包,用于通过HTTPS来获取仓库
指令:
sudo apt-get install \apt-transport-https \ca-certificates \curl \gnupg-agent \software-properties-common
出现以下提示请输入Y
若提示有其他包需要更新,可以执行指令:
sudo apt-get upgrade
5.添加 Docker 的官方 GPG 密钥:
指令:
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
6.使用以下指令设置稳定版仓库
指令:
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
7.安装 Docker Engine-Community
更新 apt 包索引。
指令:
sudo apt-get update
8.创建自定义Docker安装目录
指令:
sudo mkdir -p /usr/local/docker
9.安装 Docker Engine-Community 到自定义路径
注意:Docker默认安装路径在/var/lib/docker,我们需要在安装后迁移数据
指令:
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
如果出现以下请提示输入Y
如果出现以下提示,按回车同意就好。
10.停止Docker服务
指令:
sudo systemctl stop docker
11.备份原有Docker数据(如果存在)
指令:
if [ -d "/var/lib/docker" ]; thensudo cp -r /var/lib/docker /var/lib/docker.backup
fi
12.创建符号链接,将Docker数据目录指向自定义路径
指令:
sudo ln -sf /usr/local/docker /var/lib/docker
(二)镜像设置
设置镜像的前提下需要保证Docker已经安装成功
1.启动Docker服务
指令:
sudo systemctl start docker
2.查看Docker版本
指令:
sudo docker version
3.进入Docker指令:
cd /etc/dockersudo mkdir -p /etc/docker
4.创建daemon.json配置文件
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
5.重新加载配置并重启Docker
指令:
sudo systemctl daemon-reloadsudo systemctl restart docker
6.验证安装和配置
指令:
sudo docker info | grep "Docker Root Dir"
7.拉取镜像hello-world镜像
指令:
sudo docker pull hello-world
8.运行镜像
指令:
sudo docker run hello-world
三、jdk-17.0.12的安装
1.准备工作 在/usr/local 路径下创建java文件夹,上传jdk压缩包jdk-17.0.12_linux-x64_bin.tar.gz
完成后如图所示:
2.解压jdk
指令:
tar -zxvf jdk-17.0.12_linux-x64_bin.tar.gz
完成后如图所示:
3.配置环境变量
指令:
vim /etc/profile
进去按i后左下脚会出现INSERT字样,这是就能修改配置文件,如图所示:
接下来将以下内容添加到最后并按esc键,此时左下角insert字样会消失:
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}
随后直接输入指令并回车强制保存 :
指令:
:wq!
4.使配置环境生效
指令:
source /etc/profile
5.检查是否安装成功
指令:
java -version
如图所示便是安装成功:
三、docker中安装mysql
1.查了docker是否运行
指令:
sudo systemctl status docker
运行状态如图所示:
2.创建数据持久化存储目录
指令:
sudo mkdir -p /usr/local/mysql/data
sudo chmod -R 777 /usr/local/mysql/data
进入路径:
cd /usr/local/mysql
如图所示:
3.在docker中拉取mysql8.4.5镜像,并等待所有进度条加载完成
指令:
docker pull mysql:8.4.5
进度条图:
拉取成功图:
4.创建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 mysql_8.4.5 \ 创建名字可以自定义
-p 4060:3306 \ 设置mysql端口 只用设置冒号前面的
-e MYSQL_ROOT_PASSWORD=123456 \ 设置root密码 现在是123456
注意:斜杠是换行的意思
成功如图所示:
5.检查步骤创建的容器是否运行
指令:
sudo docker ps | grep mysql_8.4.5
运行状态如图所示:
6.启动mysql容器
指令:
docker start mysql_8.4.5
7.进入mysql输入密码(密码由第四步设置)
指令:
docker exec -it mysql_8.4.5 mysql -u root -p
输入密码界面:
成功进入后:
8.退出mysql
指令:
exit
成功退出出现bye字样如图所示:
9.设置自动重启的策略
指令:
docker update --restart=always mysql_8.4.5
成功如图所示:
10.检查是否设置成功
指令:
docker inspect -f '{{.HostConfig.RestartPolicy.Name}}' mysql_8.4.5
成功出现always字样如图所示:
11.开放步骤4的端口,并重新启动服务器
指令:
sudo ufw allow 3306/tcp
sudo ufw allow 3306/udp
sudo ufw reload
sudo ufw status
12.再次查看容器是否运行(同步骤5)
指令:
sudo docker ps | grep mysql_8.4.5
运行状态如图所示:
13.使用工具进行远程连接测试
四、在Docter中安装Tomcat
准备条件:在服务器上需要配置安装成功Docter,在阿里云服务器上面产看是否配置端口(8080/8080),如果没有需要配置端口。
端口配置过程:
登录阿里云服务器—云服务器ESC—安全组—管理规则—手动添加(授权策略:允许,优先级:1,协议类型:自定义TCP,目的:8080/8080,授权对象:所有IPv4(0.0.0.0/0))
1.拉取Tomcat 9镜像(稳定版)
指令:
docker pull tomcat:9
2.创建自定义目录并设置权限(核心路径:/usr/local/tomcat)
指令:
mkdir -p /usr/local/tomcat/{webapps,conf,logs,temp,work}
chmod -R 777 /usr/local/tomcat # 避免权限不足导致启动失败
3.启动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
4.复制默认欢迎页(解决访问空白问题)
指令:
docker cp tomcat9:/usr/local/tomcat/webapps.dist/ROOT /usr/local/tomcat/webapps/
5.验证容器状态
指令:
docker ps | grep tomcat9
显示"Up"状态表示启动成功
如果已经在服务器上开放端口(Tomcat默认端口为8080),以上没有出错就直接可以去浏览器上访问是否有“猫”,访问地址:http://服务器IP:8080
感谢2022级软件工程3班杨凡/赵仁珍同学的积极测试和整理,若有问题请及时联系。