目录
一、准备工作
准备条件:服务器操作系统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" ]; then
sudo 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/docker
sudo 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-reload
sudo 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班杨凡/赵仁珍同学的积极测试和整理,若有问题请及时联系。