1. 程式人生 > >docker必用命令及構建一個可執行jar映象

docker必用命令及構建一個可執行jar映象

1.使用映象

既然你看到這篇文章,相信已經對docker有了初步的瞭解,這是一片docker快速使用的文章。其實docker跟maven似的,一個管理的是組織好的執行環境,一個是jar包。

1.1 下載映象

docker pull hub.c.163.com/library/tomcat:latest

1.2 檢視映象

docker images

效果

$ docker images
REPOSITORY                          TAG                 IMAGE ID            CREATED             SIZE
hub.c
.163.com/library/tomcat latest 72d2be374029 12 months ago 292MB

1.3 執行映象

docker run -d -p 8888:8080 hub.c.163.com/library/tomcat

-d表示後臺執行 -p表示埠對映 這個tomcat映象預設埠是8080,前面的8888表示本季8888埠來對映到這個映象的8080埠。

效果

因為用後臺模式啟動的-d ,所以會返回一個容器的id

可以在瀏覽器中輸入
localhost:8888 檢視tomcat起來了嗎

1.4 檢視正在執行的容器

docker ps 

1.5 檢視容器 執行環境
映象啟動後,我們肯定有檢視日誌的需求,可以使用下面的命令進入檢視

docker exec -it (容器id) bash

1.6 關閉容器

通過ps可以獲取到在執行的例項

docker stop (容器id,不用輸入全部id,只輸入能區別開不同容器的前面幾位id就行)


docker stop $(docker ps -a -q)
關閉所有容器

1.7刪除容器

docker rm (容器id)

1.8刪除映象

docker rmi (映象名字)

2.構建映象

掌握上面的命令就能輕鬆使用docker啟動別人的映象了。

但重要的是,我們需要構建自己的映象,網上有很多構建基於tomcat的web應用,我這裡以可執行jar包為例,構建一個java應用映象。我這寫了一個helloworld程式,並打成可執行jar

2.1準備映象所需要的檔案

hello.jar因為我這想展示更多命令,所以新建了一個資料夾
hello裡面有一個bin資料夾,在裡面放著hello.jar

如下圖所示
這裡寫圖片描述
2.2 編寫dockerfile

from java:9

add  hello.tar.gz  /opt/
workdir /opt/hello/bin/
ENTRYPOINT ["java","-jar","hello.jar"]

下面解釋dockerfile的語法,超級簡單,就是key-value模式

2.2.1 from

from表示你的映象是基於哪個映象,如果是你是tomat web應用,from的值就是對應的tomcat的映象名字:版本號

我們是java應用,就是基於Java:9

2.2.2 maintaine

映象作者資訊 可以省略

2.2.3 add/copy

製作映象肯定需要外部檔案
add和copy就能將dockerfie同級的檔案複製系統的根目錄 /下

add和copy的區別就是 add可以將壓縮檔案直接解壓放到對應的目錄下

2.2.4 run

run表示 構建根據我們的dockerfile構建 映象執行的命令

但是一條run的作用範圍只是這條命令,例如你切換到一個資料夾,後面的命令都是的目錄並不會影響

2.2.5 workdir

切換命令 跟linux的cd 作用一樣,使用該命令後 映象的當前目錄就進行了切換

2.2.6 entrypoint/cmd

啟動映象時,映象內部會執行的命令,如果寫了多條entrypoint/cmd只會最後一條生效。
推薦使用entrypoint的[“”,”“] JSONArray模式

2.2.7 expose

暴露埠號命令,對於需要暴露埠號的映象,使用該命令制定

2.3 構建映象

docker build -t 映象名字:版本號 .

最後最後有一個  .

寫在最後:這是一篇快速上手應用docker的文章,並沒有講其相關概念,docker上手很快的,但跟詳細的應用需要各位自己琢磨了。