SpringBoot部署項目到Docker倉庫

SpringBoot部署項目到Docker倉庫
1.開啓遠程控制端口
Centos7開啓方式:

vim /lib/systemd/system/docker.service
找到ExecStart行

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock  

重啓docker

啓動 systemctl start docker
    守護進程重啓  sudo systemctl daemon-reload
    重啓docker服務  systemctl restart docker
    重啓docker服務  sudo service docker restart
    關閉docker   service docker stop   
    關閉docker  systemctl stop docker

2.創建springboot項目
利用IDEA快速創建springboot項目:
SpringBoot部署項目到Docker倉庫
添加測試Controller
SpringBoot部署項目到Docker倉庫
3.配置項目構建信息
在pom.xml文件中配置如下:

  <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>
                    <!-- docker私服的地址 -->
                    <dockerHost>http://192.168.101.205:2375</dockerHost>
                    <!--鏡像名稱以及版本號-->
                    <imageName>spring-boot-docker:1.1.1</imageName>
                    <!--依賴的基礎鏡像-->
                    <baseImage>java</baseImage>
                    <!--Dockerfile的位置 -->
                    <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
                    <!-- 這裏是複製 jar 包到 docker 容器指定目錄配置 -->
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
            <!-- Docker maven plugin -->
        </plugins>
    </build>

說明:

<dockerHost>http://192.168.101.205:2375</dockerHost&gt; 就是docker服務器地址

<imageName>spring-boot-docker:1.1.1</imageName> 構建後的docker image的name與tag

<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory> 指定Dockerfile文件位置

4.編輯Dockerfile

FROM java:8
MAINTAINER haopeng [email protected]
VOLUME /home/haopeng
ADD docker_base-0.0.1-SNAPSHOT.jar demo.jar
RUN bash -c 'touch /app.jar'
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]

另外項目端口需要改爲8080
對Dockerfile裏面的內容做一個簡單的介紹:

 1.FROM:指明當前鏡像繼承的基鏡像,編譯當前鏡像時候會自動下載基鏡像
 2.MAINTAINER:當前鏡像的作者和郵箱,使用空格隔開
 3.VOLUME:掛載目錄
 4.ADD:從當前工作目錄複製文件到鏡像目錄中並重新命名
 5.RUN:在當前鏡像上執行Linux命令,這裏我執行了2個run指令
 6.EXPOSE:監聽的端口號
 7.ENTRYPOINT:讓容器像一個可執行程序一樣運行

5.構建Docker鏡像
執行 mvn clean package -DskipTests docker:build

控制檯出現 BUILD SUCCESS 標識構建成功
SpringBoot部署項目到Docker倉庫
6.運行docker鏡像

連接到docker服務器docker images可以看到剛剛構建的鏡像
執行 docker run -d -p 8080:8080 --name docker-app spring-boot-docker:1.1.1

返回容器id表示運行成功

打開瀏覽器輸入宿主機+端口訪問項目

SpringBoot部署項目到Docker倉庫

示例demo地址:https://gitee.com/hawawa/docker_base.git

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章