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地址

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM