溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

SpringBoot中如何使用Docker容器

發(fā)布時(shí)間:2021-08-10 17:08:51 來源:億速云 閱讀:163 作者:Leah 欄目:編程語言

SpringBoot中如何使用Docker容器,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

項(xiàng)目搭建

首先打開Idea,選擇初始化一個(gè)Spring Boot應(yīng)用,然后一路回車下去,待Idea下載完依賴,開始編碼

這里寫一個(gè)簡(jiǎn)單的接口:

@RestController @SpringBootApplication public class DemoApplication {    @GetMapping("/hello")   public String hello() {     return "Hello World";   }    public static void main(String[] args) {     SpringApplication.run(DemoApplication.class, args);   } }

然后運(yùn)行下面的命令驗(yàn)證服務(wù)是否正常:

mvn clean package -Dmaven.test.skip=true java -jar target/demo-0.0.1-SNAPSHOT.jar

容器化

下面我們就開始容器化這個(gè)簡(jiǎn)單的Spring Boot應(yīng)用

創(chuàng)建Dockerfile文件

首先在項(xiàng)目的根目錄創(chuàng)建一個(gè)Dockerfile文件,主要不要搞成駝峰命名:

From java:8   VOLUME /tmp  #將打包好后的Jar文件放到image中 Add target/demo-0.0.1-SNAPSHOT.jar app.jar # change file access and modification times RUN bash -c 'touch /app.jar'  EXPOSE 8080 #容器啟動(dòng)的時(shí)候運(yùn)行Jar文件 ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

構(gòu)建鏡像

接下來就去構(gòu)建Docker鏡像,不過通常這一步都會(huì)用Jenkins的去做:

docker build -t demo8 .

如果看到下面的輸出說明執(zhí)行成功了:

Sending build context to Docker daemon 14.84MB Step 1/6 : FROM java:8  ---> d23bdf5b1b1b Step 2/6 : VOLUME /tmp  ---> Using cache  ---> 91086d8b7c77 Step 3/6 : ADD target/demo-0.0.1-SNAPSHOT.jar app.jar  ---> d161bed06e8b Step 4/6 : RUN bash -c 'touch /app.jar'  ---> Running in 9fbaff628989  ---> 1fc0498bbb06 Removing intermediate container 9fbaff628989 Step 5/6 : EXPOSE 8080  ---> Running in a5c44244b267  ---> 3b5150c5bdd0 Removing intermediate container a5c44244b267 Step 6/6 : ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar /app.jar  ---> Running in b7a3baac9d47  ---> 23ef7cc5e1b0 Removing intermediate container b7a3baac9d47 Successfully built 23ef7cc5e1b0 Successfully tagged demo8:latest

運(yùn)行鏡像

到這一步構(gòu)建完成后,我們就順利的開始運(yùn)行:

docker run -d -p 4000:8080 demo8

然后curl一下剛才的接口看看是否正常:

± % curl localhost:4000/hello Hello World%

我們看到這里是將4000端口映射到了容器中的8080端口,我們進(jìn)入容器看一下驗(yàn)證一下:

± % docker ps !10172 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5f1b7f29a0b6 988ed6f466b5 "java -Djava.secur..." 29 minutes ago Up 29 minutes 0.0.0.0:4000->8080/tcp practical_jones ± % docker exec -it 5f1b7f29a0b6 /bin/bash root@5f1b7f29a0b6:/ curl localhost:8080/hello Hello World

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI