Skip to content

Docker微服务整合

1. 创建一个SpringBoot项目

创建docker-demo项目并打包 Alt text

xml
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.7.18</version>
    <relativePath />
</parent>

<properties>
    <maven.compiler.source>8</maven.compiler.source>
    <maven.compiler.target>8</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
yml
server:
  port: 6001
java
@RestController
public class UserInfoController {

    @RequestMapping("/getUserInfo")
    public UserInfo getUser(){
        UserInfo userInfo = new UserInfo();
        userInfo.setAge(33);
        userInfo.setName("jack");
        return userInfo;
    }
}
java
@SpringBootApplication
public class AppMain {
    public static void main(String[] args) throws Exception {
        SpringApplication.run(AppMain.class, args);
    }
}
java
public class UserInfo {

    private String name;

    private int age;
    ......get/set方法
}

2. 编写Dockerfile文件

ini
# using alpine-glibc instead of alpine  is mainly because JDK relies on glibc
FROM jdk:8u212
# author
MAINTAINER jack
# java_env
ENV JAVA_HOME /usr/lib/jvm/java-1.8-openjdk
ENV PATH ${PATH}:${JAVA_HOME}/bin
ENV CLASSPATH ${CLASSPATH}:${JAVA_HOME}/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
# run container with base path:/opt
WORKDIR /opt

VOLUME /tmp
# 将jar包添加到容器中并更名为zzyy_docker.jar
ADD docker-demo-1.0.jar /opt/docker-demo.jar
# # 运行jar包
ENTRYPOINT ["java","-jar","/opt/docker-demo.jar"]
# #暴露6001端口作为微服务
EXPOSE 6001

3. 上传jar包

sh
[root@hadoop102 ~]# ll
总用量 17408
-rw-------. 1 root root     1635 11月  7 18:07 anaconda-ks.cfg
-rw-r--r--. 1 root root 17814463 3月  27 2025 docker-demo-1.0.jar
-rw-r--r--. 1 root root      625 3月  27 09:15 Dockerfile

4. 构建镜像

sh
[root@hadoop102 ~]# docker build -t docker-demo:1.0 .
[+] Building 0.1s (8/8) FINISHED                                                                                          docker:default
 => [internal] load build definition from Dockerfile                                                                                0.0s
 => => transferring dockerfile: 724B                                                                                                0.0s
 => [internal] load metadata for docker.io/library/jdk:8u212                                                                        0.0s
 => [internal] load .dockerignore                                                                                                   0.0s
 => => transferring context: 2B                                                                                                     0.0s
 => [1/3] FROM docker.io/library/jdk:8u212                                                                                          0.0s
 => [internal] load build context                                                                                                   0.0s
 => => transferring context: 103B                                                                                                   0.0s
 => CACHED [2/3] WORKDIR /opt                                                                                                       0.0s
 => CACHED [3/3] ADD docker-demo-1.0.jar /opt/docker-demo.jar                                                                       0.0s
 => exporting to image                                                                                                              0.0s
 => => exporting layers                                                                                                             0.0s
 => => writing image sha256:077b2249a0693691a31f2936ef61e5ab13cb39ac80fdcd011f4630ca902b01a1                                        0.0s
 => => naming to docker.io/library/docker-demo:1.0
[root@hadoop102 ~]# docker images
REPOSITORY                                                   TAG               IMAGE ID       CREATED          SIZE
docker-demo                                                  1.0               077b2249a069   14 minutes ago   123MB
tomcat                                                       9.0.97            6dbc2b16532f   4 months ago     469MB
mysql                                                        8.4.3             ed66f13824d5   5 months ago     592MB

5. 运行容器

sh
[root@hadoop102 ~]# docker run -d -p 6001:6001 077b2249a069

访问测试:
Alt text