一、CentOS系统安装步骤

1.1、卸载旧版本(可选)

如果之前安装过旧版本Docker,可以先卸载。

sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

1.2、安装必要的依赖和工具

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

1.3、配置Docker的Yum仓库

建议使用国内镜像源以加速下载,例如阿里云

sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

1.4、安装Docker引擎

sudo yum install -y docker-ce docker-ce-cli containerd.io

二、安装后的通用配置

2.1、设置镜像地址-很重要!很重要!很重要

安装完后默认官方镜像地址,国内经常调不通,国内众多镜像也不通,推荐使用阿里云镜像,
获取地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
在这里插入图片描述

修改配置文件
/etc/docker/daemon.json

{
  "registry-mirrors": ["https://youaddress.mirror.aliyuncs.com"]
}

保存后重新加载配置并重启docker

sudo systemctl daemon-reload
sudo systemctl restart docker

2.2、启动Docker并设置开机自启

sudo systemctl start docker
sudo systemctl enable docker

2.3、验证安装

运行一个测试容器,如果看到"Hello from Docker!"的提示则说明安装成功

sudo docker run hello-world

2.4、配置用户权限(可选但推荐)

将当前用户加入docker组,之后运行Docker命令就无需每次都加sudo。

sudo usermod -aG docker $USER

注意:执行此命令后,你需要注销并重新登录,或者重启系统,才能使组权限生效。

三、使用Dockerfile构建自定义镜像

这是一种标准化且易于维护的方式。

3.1、准备Dockerfile

在你的Jar包同级目录下,创建一个名为Dockerfile的文件(没有后缀),内容如下

# 指定基础镜像。根据你的项目需求选择Java版本,例如openjdk:8, openjdk:11, openjdk:17
FROM openjdk:11

# 在镜像中创建一个工作目录
WORKDIR /app

# 将宿主机的jar包复制到镜像的工作目录中,并为其重命名(这里命名为app.jar)
COPY your-jar-file-name.jar /app/app.jar

# 声明容器运行时对外暴露的端口,此端口需要与你的Spring Boot应用配置的端口一致
EXPOSE 8080

# 指定容器启动时运行的命令
ENTRYPOINT ["java", "-jar", "app.jar"]

请务必将your-jar-file-name.jar替换为你实际的Jar包文件名。

3.2、构建Docker镜像

在Dockerfile所在的目录执行以下命令。-t参数用于给镜像取名和打标签,注意最后有一个点,表示使用当前目录的Dockerfile

docker build -t my-java-app:1.0 .

3.3、运行Docker容器

使用刚才构建的镜像来启动一个容器

docker run -d --restart=always --name my-app-container -p 8080:8080 my-java-app:1.0

  • –d:让容器在后台运行。

  • –restart=always:设置容器随Docker服务自动启动,如果容器意外退出也会自动重启。

  • –name:为容器指定一个名字,方便管理。

  • -p 8080:8080:进行端口映射,将宿主机的8080端口映射到容器的8080端口。你可以根据实际情况修改宿主机端口。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐