日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jar构建docker镜像_dockerfile构建docker镜像详细说明,主要是springboot的jar包构建镜像样例...

發布時間:2023/12/19 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jar构建docker镜像_dockerfile构建docker镜像详细说明,主要是springboot的jar包构建镜像样例... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

dockerfile構建docker鏡像詳細說明,主要是springboot的jar包構建鏡像樣例

1.鏡像構建命令:docker build

圖解

啟動命令:(注意最后面有一個點,不要忘記)

docker build -t 自定義鏡像名:tag .

執行docker build時,docker server會先把上下文的所有文件都裝著起來,然后根據dockerfile文件內容來一條條執行指令來構建鏡像警告:

不要用你的根目錄下當上下文目錄,/作為PATH因為它會導致生成到您的硬盤驅動器的全部內容傳輸到docker 守護進程。導致服務器宕機

2.初次體驗:我的第一個簡單樣例dockerfile構建docker鏡像

1)拉取一個centos鏡像

docker pull centos:7

2)創建文件

touch test.txt

3)編寫dockerfile文件,內容如下

FROM centos:7

COPY test.txt /

4)構建鏡像

docker build -t mycentos1 .

運行結果:(Successfully)

Sending build context to Docker daemon 3.072kB

Step 1/2 : FROM centos:7

---> b5b4d78bc90c

Step 2/2 : COPY test.txt /

---> 0336262a3ff6

Successfully built 0336262a3ff6

Successfully tagged mycentos1:latest

5)查看構建好的鏡像:docker images

6)運行鏡像:docker run -it mycentos1

鏡像的已經存在test.txt,證明COPY test.txt /已經復制到鏡像里了

7)完成第一個構建鏡像

3.dockerfile文件的指令關鍵字說明(就是命令)

指令說明都是來自官網

| 指令 | 參數形式 |描述 |

| :----: | :---- |:--- |

| FROM | FROM [--platform=] [:] [AS ] |FROM指令初始化一個新的構建階段,并為后續指令設置 Dockerfile必須從FROM指令開始。

(推薦)最好從公共存儲庫中拉出圖像開始構建。| | MAINTINER | MAINTAINER |MAINTAINER指令設置生成圖像的作者字段

(官網已經不建議使用,改成:LABEL)

| | LABEL | LABEL === ... |標簽:LABEL指令將元數據添加到圖像。ALABEL是鍵值對。要在LABEL值中包含空格,請像在命令行分析中一樣使用引號和反斜杠。| | RUN | (1)RUN (shell形式,命令在shell中運行,默認情況下/bin/sh -c在Linux或cmd /S /CWindows上運行)

(2)RUN ["executable", "param1", "param2"](執行表格) |執行shell命令、Linux命令、安裝命令等| | COPY | COPY [--chown=:] ...

COPY [--chown=:] ["",... ""] |copy和add功能很像,都有把上下文目錄資源復制到鏡像的功能

copy是對上下文的資源直接復制

add還可以是url,對tar還會自動解壓| | ADD | ADD [--chown=:< group >] ...

ADD [--chown=:] ["",... ""] || | ENV | ENV = ...|ENV指令將環境變量設置為value 。此值將在構建階段的所有后續指令所在的環境中使用,并且在許多情況下也可以內聯替換

例如:docker run --env key=value就會替換dockerFile原來定義的環境變量,達到動態設置的功能| | EXPOSE | EXPOSE [/...]

例如:EXPOSE 80/udp |EXPOSE指令通知Docker容器在運行時監聽指定的網絡端口。您可以指定端口是偵聽TCP還是UDP,如果未指定協議,則默認值為TCP。

就是把容器的端口爆露出來,不然容器將不給訪問,-p標記ondocker run 發布和映射一個或多個端口,或者使用-P標記發布所有公開的端口并將它們映射到高階端口。| | VOLUME |VOLUME ["/data"]|掛載卷:VOLUME指令創建具有指定名稱的安裝點,并將其標記為保存來自本機主機或其他容器的外部安裝的卷。

就是把容器的目錄能掛載到本地主機上,達到數據保護的作用

例如:docker run -v 本地目錄:容器目錄,就是把容器目錄掛載到本地主機了,然后就可以相互通數據,雙向綁定,那邊修改都會同步更新,前提就是要dockerfile構建的要先定義好,不然不會生效| | WORKDIR | WORKDIR /path/to/workdir |是對容器進行交互模式時,第一次進來容器的目錄落腳點,還有對copy,add也有作用,細看官網說明| | ENTRYPOINT | (1)ENTRYPOINT ["executable", "param1", "param2"]

(2)ENTRYPOINT command param1 param2 |入口點:ENTRYPOINT允許您配置將作為可執行文件運行的容器。一般可以和CMD集合使用| | CMD | (1) CMD ["executable","param1","param2"](exec形式,這是首選形式)

(2) CMD ["param1","param2"](作為ENTRYPOINT的默認參數)

(3)CMD command param1 param2(外殼形式) |CMD指令中只能有一條指令Dockerfile。如果您列出多個,CMD 則只有最后一個CMD才會生效。

如果用戶指定的參數,docker run則它們將覆蓋中指定的默認參數CMD。|

4.構建springboot的jar鏡像

1)前提條件

已經有一個可以運行的springboot的jar包

2)編寫dockerfile

# 基于jdk8環境

FROM openjdk:8

# 鏡像描述

LABEL version="1.0" \

author="binggoling" \

memo="我的構建第一個springboot的jar,dockerfile文件"

#拷貝jar包到鏡像里

COPY springbootdemo-0.0.1-SNAPSHOT.jar app.jar

#創建文件

RUN bash -c "touch /app.jar"

#設置環境變量

ENV xms=128m

ENV xmx=512m

# 掛載目錄。這個是我的日志生產的目錄

VOLUME /testlog

# 工作目錄

WORKDIR /

#暴露端口

EXPOSE 8080

#容器啟動時的運行命令

CMD java -Xms$xms -Xmx$xmx -jar /app.jar --server.port=8080

3)構建鏡像

docker build -t myjar .

構建結果:

Sending build context to Docker daemon 48.31MB

Step 1/10 : FROM openjdk:8

---> 3d06e674f731

Step 2/10 : LABEL version="1.0" author="binggoling" memo="我的構建第一個springboot的jar,dockerfile文件"

---> Using cache

---> f080ad273539

Step 3/10 : COPY springbootdemo-0.0.1-SNAPSHOT.jar app.jar

---> Using cache

---> f2e7909f5ac4

Step 4/10 : RUN bash -c "touch /app.jar"

---> Using cache

---> 6233753d2e9c

Step 5/10 : ENV xms=128m

---> Using cache

---> f0c98951d24e

Step 6/10 : ENV xmx=512m

---> Using cache

---> 00f882ae0119

Step 7/10 : VOLUME /testlog

---> Using cache

---> 895097ffbabb

Step 8/10 : WORKDIR /

---> Using cache

---> 928fad7a73a7

Step 9/10 : EXPOSE 8080

---> Using cache

---> 2f608ba6e225

Step 10/10 : CMD java -Xms$xms -Xmx$xmx -jar /app.jar --server.port=8080

---> Using cache

---> 09e6c2b3a96e

Successfully built 09e6c2b3a96e

Successfully tagged myjar:latest

查看鏡像:docker images

4)啟動容器

docker run --name myjar -v /usr/local/docker/make/log:/testlog -p 8085:8080 -d myjar

總結

以上是生活随笔為你收集整理的jar构建docker镜像_dockerfile构建docker镜像详细说明,主要是springboot的jar包构建镜像样例...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。