IDEA中一鍵部署SpringBoot項目到Docker


一、修改配置文件,打開2375端口
[root@microservice ~]# vim /usr/lib/systemd/system/docker.service
在ExecStart=/usr/bin/dockerd 后面加上-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock 
重新加載配置文件和啟動:
systemctl daemon-reload
systemctl start docker

 

二、idea安裝docker插件(Docker integration)並配置

 

 

 插件安裝完成重啟idea后可以看到底部多了個docker標志

 

三、編寫DockerFile(放在根目錄下)

 

#使用jdk8作為基礎鏡像
FROM java:8
#指定作者
MAINTAINER gaox
#暴露容器的8088端口
EXPOSE 8089
#將復制指定的xxl-job-admin-2.1.0.jar為容器中的job.jar,相當於拷貝到容器中取了個別名
ADD target/xxl-job-admin-2.1.0.jar /job.jar
#創建一個新的容器並在新的容器中運行命令
RUN bash -c 'touch /job.jar'
#設置時區
ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
#相當於在容器中用cmd命令執行jar包  指定外部配置文件
ENTRYPOINT ["java","-jar","/job.jar","--spring.config.location=/usr/local/project/docker/xxl-job/config/application.yml"]

 

 

 

 

 方法一:不配置maven,創建鏡像的同時啟動鏡像

 

 

 

 

 

命令解釋:

    • Image tag : 指定鏡像名稱和tag

    • Bind ports : 綁定宿主機端口到容器內部端口。格式為[宿主機端口]:[容器內部端口]

    • Bind mounts : 將宿主機目錄掛到到容器內部目錄中。
      格式為[宿主機目錄]:[容器內部目錄]。這個springboot項目會將日志打印在容器 /usr/local/project/docker/xxl-job-admin 目錄下,將宿主機目錄掛載到容器內部目錄后,那么日志就會持久化容器外部的宿主機目錄中。

 
方法二:配置maven,打包即創建鏡像,然后手動添加容器
  <!--使用docker-maven-plugin插件-->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</version>

                <!--將插件綁定在某個phase執行-->
                <executions>
                    <execution>
                        <id>build-image</id>
                        <!--將插件綁定在package這個phase上。也就是說,用戶只需執行mvn package ,就會自動執行mvn docker:build-->
                        <phase>package</phase>
                        <goals>
                            <goal>build</goal>
                        </goals>
                    </execution>
                </executions>

                <configuration>
                    <!--指定生成的鏡像名,前面的那個名字你隨便改,后面的引用,不能動-->
                    <imageName>gaox/${project.artifactId}</imageName>
                    <!--指定標簽,也就是版本號,可以自定義-->
                    <imageTags>
                        <imageTag>v1.5</imageTag>
                    </imageTags>
                    <!-- 指定 Dockerfile 路徑-->
                    <dockerDirectory>${project.basedir}</dockerDirectory>

                    <!--指定遠程 docker api地址 也就是服務器ip+docker的端口號-->
                    <dockerHost>http://192.168.56.104:2375</dockerHost>

                    <!-- 這里是復制 jar 包到 docker 容器指定目錄配置 -->
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <!--jar 包所在的路徑  此處配置的 即對應 target 目錄-->
                            <directory>${project.build.directory}</directory>
                            <!-- 需要包含的 jar包 ,這里對應的是 Dockerfile中添加的文件名 -->
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
View Code

 

 

如圖所示配置好容器名稱,綁定端口號,點擊apply,然后點擊run,就能正常啟動鏡像的容器了

 

 

 

 


免責聲明!

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



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