Docker部署Springboot项目

以下是在 Linux CentOS 7 环境中使用 Docker 部署 Spring Boot 项目的详细步骤:

1. 安装 Docker

  检查内核版本,返回的值大于3.10即可。

  uname -r

   更新系统
   sudo yum update
   这个命令会更新系统中所有包和依赖项。

   首先需要安装 Docker,可以使用以下命令安装 Docker:

   sudo yum install docker-ce docker-ce-cli containerd.io
 
   安装完成后,输入以下命令启动 Docker 服务并设置为开机启动:
   启动Docker
   sudo systemctl start docker
   设置Docker为开机启动
   sudo systemctl enable docker

2.安装mysql8

(1)在本地创建一个项目文件夹,例如 "my-mysql",然后进入该文件夹。


(2)在命令行中运行以下命令,拉取 MySQL 8 镜像:

  docker pull mysql:8


(3)运行以下命令,创建一个 MySQL 容器,并指定一个容器名称(例如 "my-mysql-container"),并将容器的端口映射到本地机器的端口(例如将容器端口 3306 映射到本地机器的端口 3306):


docker run --name my-mysql-container -p 3306:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:8

 `--name my-mysql-container` 指定一个容器名称为 "my-mysql-container",方便后续操作。

`-p 3306:3306` 将容器的端口 3306 映射到本地机器的端口 3306,方便通过本地机器访问 MySQL。
`-e MYSQL_ROOT_PASSWORD=123456` 指定 MySQL 的 root 用户的密码为 "123456",可以根据需要自定义。
`-d` 参数表示以后台方式运行容器。

(4)运行以下命令,查看 MySQL 容器是否正常运行:

  docker ps

输出应该类似于以下内容:

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
 0c4dcd68ea92        mysql:8             "docker-entrypoint.s…"   10 seconds ago      Up 5 seconds        0.0.0.0:3306->3306/tcp   my-mysql-container
可以看到容器已经运行,并且将容器的端口 3306 映射到了本地机器的端口 3306。

(5) 使用 MySQL 客户端连接到容器中运行的 MySQL 服务:

   -在命令行中运行以下命令,进入容器的 shell 环境:


     docker exec -it my-mysql-container bash
 

   - 在容器的 shell 环境中运行以下命令,登录 MySQL 服务:

 
     mysql -uroot -p
 

   - 输入在步骤 (3)中指定的 MySQL root 密码。

(6)现在就可以在 MySQL 中创建数据库、用户等操作了。

  (7)如果不再需要使用 MySQL 8 容器,可以使用以下命令将其停止并删除:

   docker stop my-mysql-container
   docker rm my-mysql-container

  如果需要对容器进行重新安装和使用,可以再次运行步骤 3。

3. 创建项目文件夹

   在某个路径下创建用于存放 Spring Boot 项目的文件夹,例如:

   mkdir /home/springboot-app
   cd /home/springboot-app
 

4. 创建 Dockerfile 文件

   在项目文件夹中创建 Dockerfile 文件,用于构建 Docker 镜像。Dockerfile 中需要指定基础镜像、安装 JDK 和 MySQL 数据库等操作,具体代码如下:

  # 使用jdk1.8的镜像
     FROM java:8

  #目录并持久化到Docker数据文件夹,因为Spring Boot使用的内嵌Tomcat容器默认使用/tmp作为工作目录
    VOLUME /tmp

 #添加自己的项目到到app.jar中,注意:这里的包名要和pom文件中的包名一致,后面的app,jar可以自己取
  ADD  PersonnelSystem-1.0-SNAPSHOT.jar  app.jar

 # 容器运行后默认执行的命令
  CMD ["java","-jar","/app.jar"]

5. 构建 Docker 镜像

   在项目文件夹中输入以下命令构建 Docker 镜像:

 
   sudo docker build -t springboot-app .
 

   这个命令会根据当前文件夹下的 Dockerfile 文件构建一个名为 springboot-app 的 Docker 镜像。

6. 启动 MySQL 数据库

   在 Docker 容器中启动 MySQL 数据库,可以使用以下命令:

 
   sudo docker run --name mysql -e MYSQL_ROOT_PASSWORD=your_password -d  mysql:latest
 

   这个命令会在 Docker 容器中启动一个名为 mysql 的 MySQL 数据库,设置用户名为 root,密码为 your_password。注意,此处使用的是 mysql:latest 镜像,这个镜像中已经包含了 MySQL 服务器。

7. 运行 Spring Boot 项目

   在 Docker 容器中运行 Spring Boot 项目,可以使用以下命令:

 
   sudo docker run -p 8080:8080 --link mysql:mysql -d springboot-app
 

   这个命令会在 Docker 容器中运行 springboot-app 镜像,将容器内部的 8080 端口映射到主机的 8080 端口,同时使用 --link 参数链接刚才启动的 mysql 容器。

至此,Spring Boot 项目已经成功在 Docker 中部署运行。

你可能感兴趣的:(docker,springboot)