SpringBoot使用docker實現(xiàn)項目部署

將SpringBoot項目打成jar包

一、創(chuàng)建一個SpringBoot項目

二、在porm.xml里面添加配置

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.0.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <groupId>org.lym</groupId>
    <artifactId>mock</artifactId>
    <version>1.0-SNAPSHOT</version>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    
     <!-- 使用maven打包項目需要添加build配置 -->
    <build>
        <finalName>docker-jar</finalName> <!--使用maven打包后的包名 -->
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

    <dependencies>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

三、使用maven打包。進(jìn)入項目的主目錄下(和porm.xml同級),使用mvn clean package -Dmaven.test.skip=true(-Dmaven.test.skip=true是為了排除項目中的test包) 打包項目,最終jar會放在target文件夾下。

安裝docker

一、使用國內(nèi)的daocloud一鍵安裝docker

curl -sSL https://get.daocloud.io/docker | sh

如果報“Delta RPMs disabled because /usr/bin/applydeltarpm not installed.”錯誤,執(zhí)行以下命令

yum provides '*/applydeltarpm' #查看依賴包的位置
yum -y install deltarpm #安裝deltarpm

二、啟動docker

systemctl start docker

三、檢查docker是否安裝成功

docker run hello-world

如果出現(xiàn)以下信息,表明docker安裝成功


創(chuàng)建鏡像

一、在服務(wù)器上建一個文件夾DockerFile,在文件夾下創(chuàng)建一個文件Dockerfile

mkdir DockerFile
touch Dockerfile

二、編輯Dockerfile文件

FROM java:8
VOLUME /tmp
COPY docker-jar.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","app.jar","--server.port=80","> /log/app.log"]

FROM:定制的鏡像都是基于 FROM 的鏡像,這里的java就是應(yīng)用需要用到的java環(huán)境,版本號是8
VOLUME :聲明容器中存儲數(shù)據(jù)的目錄(匿名卷),跟宿主機的某個目錄綁定
COPY :復(fù)制docker-jar.jar到容器中并重新命名為app.jar
EXPOSE :暴露容器的端口(僅僅是聲明,并不會實際綁定)
ENTRYPOINT :在啟動容器的時候運行,這里用來啟動springboot項目

三、構(gòu)建鏡像

將上面打的docker-java.jar包放到DockerFile目錄下(和Dockerfile同一目錄),并運行如下命令

docker build -t mock .

-t:指定鏡像名稱
.:當(dāng)前目錄
鏡像構(gòu)建完后,可以使用docker images 查看結(jié)果


四、啟動容器

使用如下命令啟動容器

docker run -d --name mock -P mock
或者
docker run -d --name mock -p 80:8080 mock

-d:默認(rèn)不會進(jìn)入容器,容器啟動后會進(jìn)入后臺
-P:將容器內(nèi)部使用的網(wǎng)絡(luò)端口隨機映射到我們使用的主機上
-p:將容器端口映射到指定的host端口上,這里是將8080端口映射到80端口上
--name:設(shè)置容器名稱

如果上面的命令啟動后,無法通過瀏覽器訪問應(yīng)用,嘗試將newwork改成host

docker run -d --net="host" --name mock  mock

--net="host":此時容器使用宿主機的ip和端口

如果需要查看容器的日志,可以使用

docker logs -f mock
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容