Linux CentOS7上通过docker部署springboot项目初学入门,以及常用命令

    科技2025-01-12  12

    docker相关概念简单描述:

    Docker image:包含运行所需的文件。 Docker container:运行一个镜像就是一个容器。 Docker hub/registry:共享和管理镜像的库。

    本文开始之前默认已经安装JDK和maven,如未安装请自行安装。

    1、项目添加依赖

    <properties> <docker.image.prefix>springboot</docker.image.prefix> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <!-- Docker maven plugin --> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.0</version> <configuration> <imageName>${docker.image.prefix}/${project.artifactId}</imageName> <dockerDirectory>src/main/docker</dockerDirectory> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> <!-- Docker maven plugin --> </plugins> </build>

    添加一个测试接口

    @RestController public class HelloController { @RequestMapping("/hello") public String hello(String name) { return "hello world,"+name; } }

    启动项目访问接口正常返回结果,继续往下

    2、创建Dockerfile文件

    在⽬录 src/main/docker 下创建 Dockerfile ⽂件,内容如下

    FROM openjdk:8-jdk-alpine VOLUME /tmp ADD docker-0.0.1-SNAPSHOT.jar app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

    FROM:表示指定基础镜像 VOLUME /tmp:在宿主机的 /var/lib/docker ⽬录下创建⼀个临时文件并把它链接到容器中的 /tmp 目录 ADD:表示复制文件并重命名

    3、docker安装

    3.1、执行安装Docker的命令

    yum install docker

    3.2、安装后启动docker服务

    service docker start

    3.3、设置开机启动

    chkconfig docker on

    3.4、CentOS 7 命令如下

    启动docker服务 systemctl start docker.service 设置开机启动 systemctl enable docker.service

    3.5、docker设置国内阿里云的镜像加速器

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

    vi /etc/docker/daemon.json

    添加如下内容后保存

    { "registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"], "live-restore": true }

    3.6、重启docker

    systemctl restart docker

    能正常查看版本说明安装成功

    docker version

    4、项目打包和部署

    4.1、打包项目

    上传项目到服务器,进入项目根目录,进行打包

    mvn clean package

    执行以上命令打包后,执行jar包,能正常访问后继续往下

    java -jar target/spring-boot-docker-1.0.jar

    4.2、使用 DockerFile 构建镜像

    mvn package docker:build

    构建成功后查看镜像

    docker images

    可以看到我们springboot/${project.artifactId}为名称的镜像

    4.3、运行镜像

    运行镜像命令

    docker run -p 8080:8080 -t springboot/docker

    查看正在运行的镜像

    docker ps

    访问项目,如下正常访问,说明我们成功通过docker部署了服务

    5、常用命令

    启动docker服务

    service docker start 或者 systemctl start docker

    关闭docker服务

    service docker stop 或者 systemctl stop docker

    拉取镜像

    docker pull image_name

    查看镜像

    docker images

    删除镜像

    docker rmi docker.io/tomcat:7.0.77-jre7 或者 docker rmi b39c68b7af30

    进入容器

    docker exec -it 999318c7d567 /bin/bash

    正在运行的容器

    docker ps

    查看所有容器

    docker ps -a

    启动、停⽌、重启容器

    docker start container_name/container_id docker stop container_name/container_id docker restart container_name/container_id

    springboot项目地址

    https://github.com/JsonTom888/docker

    Processed: 0.014, SQL: 8