Docker(二)

docker實例一

基于springboot2.0.0部署,沒有使用springboot的docker插件

@RestController
@RequestMapping("/docker")
public class DockerController {
    
    @GetMapping("/test1")
    public String test1() {
        return "docker test1";
    }
}

寫Dockerfile

FROM java:8
VOLUME /app
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/app/docker-test1.jar"]

構(gòu)建

docker build -t sosop/java-app1:v1.0.0 .
Sending build context to Docker daemon  2.048kB
Step 1/4 : FROM java:8
8: Pulling from library/java
5040bd298390: Pull complete
fce5728aad85: Pull complete
76610ec20bf5: Pull complete
60170fec2151: Pull complete
e98f73de8f0d: Pull complete
11f7af24ed9c: Pull complete
49e2d6393f32: Pull complete
bb9cdec9c7f3: Pull complete
Digest: sha256:34959eed5df6bfe74a17fbf459ed29505d51a48d5cb4a39f215b613c65b8023b
Status: Downloaded newer image for java:8
 ---> d23bdf5b1b1b
Step 2/4 : VOLUME /app
 ---> Running in ece3f8cca292
Removing intermediate container ece3f8cca292
 ---> 86c85d1c101e
Step 3/4 : EXPOSE 8080
 ---> Running in d2c5b86091b2
Removing intermediate container d2c5b86091b2
 ---> ccd096eab953
Step 4/4 : ENTRYPOINT ["java", "-jar", "/app/docker-test1.jar"]
 ---> Running in a0f619ef071e
Removing intermediate container a0f619ef071e
 ---> 7e6adf484301
Successfully built 7e6adf484301
Successfully tagged sosop/java-app1:v1.0.0

下面解釋下各條指令:

  • FROM: 指定基礎(chǔ)鏡像,這里是需要java環(huán)境,所以依賴jdk8
  • VOLUME: 定義匿名卷,VOLUME ["<路徑1>", "<路徑2>"…]或VOLUME <路徑>,為了防止運行時用戶忘記將動態(tài)文件所保存目錄掛載為卷,在 Dockerfile 中,我們可以事先指定某些目錄掛載為匿名卷
  • EXPOSE:指令是聲明運行時容器提供服務(wù)端口,這只是一個聲明,在運行時并不會因為這個聲明應(yīng)用就會開啟這個端口的服務(wù)
  • ENTRYPOINT:與CMD很相似,運行命令,但是可以讓鏡像變成像命令一樣使用,也可以做一些應(yīng)用運行前的準備工作

運行容器:

 docker run -d -p 80:8080 -v /data:/app --name app1 sosop/java-app1:v1.0.0

?
? 直接訪問:http://localhost/docker/test1

?著作權(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ù)。

相關(guān)閱讀更多精彩內(nèi)容

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