Linux容器——Docker(三)之 SpringBoot部署

1.拉取镜像

  a.拉取Java8镜像

#拉取Java8镜像
$ docker pull openjdk:8

  b.拉取Mysql镜像

#拉取Mysql镜像
$ docker pull mysql:8.0.18

  c.查看镜像是否拉取成功

# 列出本机的所有 image 文件。
$ docker images

 

 

2.配置共享文件夹

  a.参考:https://www.cnblogs.com/vettel0329/p/12167031.html

3.启动Mysql容器

  a.参考:https://www.cnblogs.com/vettel0329/p/12167031.html

4.创建SpringBoot工程

  a.参考:https://www.cnblogs.com/vettel0329/p/12038468.html

 

 

 

5.方式一:挂载部署jar包(推荐

  a.使用Maven打包工程为Jar包,并将打好的Jar包放到共享文件夹 D:\dockermnt\jar 中,每次只用替换Jar包再重启容器即可

 

  b.执行命令启动Java容器

#启动容器,并执行jar包
$ docker run --name springboot-mybatisplus -p 8081:8081 -v /dockermnt/jar:/usr/src/myapp -d openjdk:8 java -jar /usr/src/myapp/springboot-mybatisplus-0.0.1-SNAPSHOT.jar

    ·-p 8081:8081:将容器的8081端口映射到主机的8081端口

    ·-v /dockermnt/jar:/usr/src/myapp:将主机/dockermnt/jar目录(windows为共享文件夹下路径,即"/dockermnt"对应"D:\dockermnt")挂载到容器的/usr/src/myapp

    ·java -jar /usr/src/myapp/springboot-mybatisplus-0.0.1-SNAPSHOT.jar:Java启动命令,运行Jar包

 

  c.访问 http://192.168.99.100:8081 测试(注意IP地址为docker-machine分配的IP地址

 

 

 

6.方式二:Dockerfile构建Docker镜像

  a.使用Maven打包工程为Jar包

  b.创建Dockerfile文件

# 基础镜像使用java
FROM openjdk:8
# 作者
MAINTAINER zwin
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为app.jar
ADD springboot-mybatisplus-0.0.1-SNAPSHOT.jar app.jar
# 运行jar包
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

 

  c.将 Dockerfile 文件和打好的 Jar 放在同一文件夹下,并在当前目录运行CMD

docker build -t zwin/springbootmybatisplus .

    ·-t zwin/springbootmybatisplus:设置镜像的名字及标签,通常 name:tag 或者 name 格式

    ·注意最后有个"."

 

  d.在Docker命令行查看镜像是否构建成功

# 列出本机的所有 image 文件。
$ docker images

 

  e.使用镜像启动容器

#根据镜像启动容器
$ docker run --name springboot-mybatisplus -d -p 8081:8081 zwin/springbootmybatisplus

 

  f.访问 http://192.168.99.100:8081 测试(注意IP地址为docker-machine分配的IP地址

 

 

 

7.方式三:Maven构建Docker镜像

  a.在 resources 目录下创建 Dockerfile

# 基础镜像使用java
FROM openjdk:8
# 作者
MAINTAINER zwin
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为app.jar
ADD springboot-mybatisplus-0.0.1-SNAPSHOT.jar app.jar
# 运行jar包
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

 

  b.在 pom 文件中加入 docker 插件依赖

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>

            <!-- docker插件 -->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <!-- docker服务器地址 -->
                    <!-- <dockerHost>http://localhost:2375</dockerHost> -->
                    <!--镜像名称以及版本号-->
                    <imageName>zwin/springbootmybatisplus:1.0.0</imageName>
                    <!--依赖的基础镜像-->
                    <baseImage>openjdk:8</baseImage>
                    <!--Dockerfile的位置 -->
                    <dockerDirectory>${project.build.outputDirectory}</dockerDirectory>
                    <!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
        </plugins>
    </build>

 

  c.使用Maven打包工程为Jar包,并执行Maven命令构建Docker镜像

mvn docker:build

 

  d.在Docker命令行查看镜像是否构建成功

# 列出本机的所有 image 文件。
$ docker images

 

  e.使用镜像启动容器

#根据镜像启动容器
$ docker run --name springboot-mybatisplus -d -p 8081:8081 zwin/springbootmybatisplus:1.0.0

 

  f.访问 http://192.168.99.100:8081 测试(注意IP地址为docker-machine分配的IP地址

 

  

posted @ 2020-01-11 16:47  晨M风  阅读(1166)  评论(0编辑  收藏  举报