中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

蕪湖尚格網(wǎng)絡(luò)科技有限公司北京網(wǎng)站seo招聘

蕪湖尚格網(wǎng)絡(luò)科技有限公司,北京網(wǎng)站seo招聘,建立wordpress,六安市建設(shè)銀行網(wǎng)站文章目錄 7. Dockerfile7.1 Dockerfile介紹7.2 指令規(guī)則7.3 指令說(shuō)明7.3.1 RUN命令的兩種格式7.3.1 CMD命令覆蓋問(wèn)題7.3.2 ENTRYPOINT命令使用7.3.3 ENV的使用 7.4 構(gòu)建tomcat Dockerfile案例7.4.1 準(zhǔn)備原始文件7.4.2 編寫(xiě)Dockerfile7.4.3 構(gòu)建鏡像7.4.4 驗(yàn)證鏡像 7.5 構(gòu)建jdk基…

文章目錄

  • 7. Dockerfile
    • 7.1 Dockerfile介紹
    • 7.2 指令規(guī)則
    • 7.3 指令說(shuō)明
      • 7.3.1 RUN命令的兩種格式
      • 7.3.1 CMD命令覆蓋問(wèn)題
      • 7.3.2 ENTRYPOINT命令使用
      • 7.3.3 ENV的使用
    • 7.4 構(gòu)建tomcat Dockerfile案例
      • 7.4.1 準(zhǔn)備原始文件
      • 7.4.2 編寫(xiě)Dockerfile
      • 7.4.3 構(gòu)建鏡像
      • 7.4.4 驗(yàn)證鏡像
    • 7.5 構(gòu)建jdk基礎(chǔ)鏡像(alpine-java8)
      • 7.5.1 準(zhǔn)備glibc包
      • 7.5.2 編寫(xiě)Dockerfile
      • 7.5.3 構(gòu)建鏡像
      • 7.5.4 驗(yàn)證鏡像
      • 7.5.5 上傳鏡像到docker-hub
        • 7.5.5.1 注冊(cè)創(chuàng)建存儲(chǔ)庫(kù)
        • 7.5.5.2 打標(biāo)簽
        • 7.5.5.3 上傳鏡像
    • 7.6 基于自定義的鏡像構(gòu)建微服務(wù)(SpringBoot)案例
      • 7.6.1 準(zhǔn)備微服務(wù)包
      • 7.6.2 編寫(xiě)Dockerfile
      • 7.6.3 構(gòu)建鏡像
      • 7.6.4 運(yùn)行鏡像

7. Dockerfile

7.1 Dockerfile介紹

Dockerfile是用來(lái)構(gòu)建Docker鏡像的文本文件,是由一條條構(gòu)建鏡像所需要的指令和參數(shù)構(gòu)成的腳本。
官方語(yǔ)法文檔:https://docs.docker.com/engine/reference/builder/
上面打不開(kāi)的,可以https://9w94o-jhdoy-qp3y6-s66fo.glados.space 通過(guò)這個(gè)地址申請(qǐng)打開(kāi)。

7.2 指令規(guī)則

  1. 指令大寫(xiě),后面跟隨至少一個(gè)參數(shù)
  2. 指令按照從上到下順序執(zhí)行
  3. #表示注釋
  4. 每條指令會(huì)創(chuàng)建一個(gè)新的鏡像層,并對(duì)鏡像進(jìn)行提交

7.3 指令說(shuō)明

指令說(shuō)明
FROM基礎(chǔ)鏡像,當(dāng)前新鏡像是基于哪個(gè)鏡像的,指定一個(gè)存在的鏡像作為模板,第一條必須是FROM
MAINTAINER鏡像作者的姓名和郵箱
RUN容器構(gòu)建時(shí)需要執(zhí)行的命令
兩種格式:shell格式和exec格式
RUN命令是在docker構(gòu)建時(shí)運(yùn)行
EXPOSE當(dāng)前容器對(duì)外暴露的端口
WORKDIR指定在創(chuàng)建容器后,終端默認(rèn)登錄進(jìn)來(lái)的工作目錄
USER指定該鏡像以什么樣的用戶去執(zhí)行,如果不指定,默認(rèn)是root
ENV用來(lái)在構(gòu)建鏡像過(guò)程中設(shè)置環(huán)境變量
ADD將宿主機(jī)目錄下的文件拷貝進(jìn)鏡像且會(huì)自動(dòng)處理URL和解壓tar壓縮包
COPY將容器內(nèi)路徑和主機(jī)路徑關(guān)聯(lián)。
VOLUME容器卷,用于數(shù)據(jù)保存和持久化工作
VOLUME指定的路徑宿主機(jī)和容器內(nèi)部的路徑必須是相同的,如果要不同,只能通過(guò)docker run -v的形式指定
CMD指定容器啟動(dòng)后,需要執(zhí)行的某個(gè)命令
Dockerfile中可以有多個(gè)CMD指令,但只有最后一個(gè)生效,CMD會(huì)被docker run之后的參數(shù)替換。
ENTRYPOINT類(lèi)似于CMD命令,但是ENTRYPOINT不會(huì)被docker run后面的命令覆蓋,
而且這些命令行參數(shù)會(huì)被當(dāng)做參數(shù)送給ENTRYPOINT指令指定的程序。

7.3.1 RUN命令的兩種格式

shell格式:RUN yum -y install vim
exec格式:RUN [“./test.php”,“dev”,“offline”]

7.3.1 CMD命令覆蓋問(wèn)題

注意事項(xiàng):當(dāng)帶參數(shù)執(zhí)行docker run命令時(shí),參數(shù)會(huì)覆蓋已有的CMD命令。

# 第一種,不帶參數(shù)的,這種情況可以正常運(yùn)行
docker run -it -p 8080:8080 billygoo/tomcat8-jdk8

在這里插入圖片描述

在這里插入圖片描述

# 第二種,帶參數(shù)/bin/bash,這種情況不能正常運(yùn)行
docker run -it -p 8080:8080 billygoo/tomcat8-jdk8 /bin/bash

在這里插入圖片描述

在這里插入圖片描述

這時(shí)候就沒(méi)看到tomcat啟動(dòng)起來(lái),通過(guò)docker ps -a可以看到COMMAND列被替換為了/bin/bash,所以就根本沒(méi)執(zhí)行catalina.sh run

CMD是在docker run時(shí)運(yùn)行,而RUN是在docker build時(shí)運(yùn)行。

7.3.2 ENTRYPOINT命令使用

當(dāng)ENTRYPOINT和CMD一起使用時(shí),即在ENTRYPOINT的后面一行添加了CMD命令,那么CMD不再是直接運(yùn)行的命令,而是將其內(nèi)容作為參數(shù)傳遞給ENTRYPOINT指令。

ENTRYPONIT ["nginx" "-c"]     # 定參
CMD ["/etc/nginx/nginx.conf"] # 變參

比如上面的2行,CMD后面的不再是可以直接運(yùn)行的命令,而是當(dāng)做參數(shù)傳遞給了ENTRYPOINT,那么在實(shí)際執(zhí)行時(shí)會(huì)執(zhí)行下面shell命令

nginx -c /etc/nginx/nginx/conf

第一點(diǎn)需要注意的地方
這里的CMD包含的內(nèi)容,就是給nginx指定了在啟動(dòng)時(shí),默認(rèn)的配置文件是/etc/nginx/nginx/conf。

第二點(diǎn)需要注意的地方
假設(shè)在執(zhí)行docker run的命令時(shí),如果又指定了外部的參數(shù),如下:

docker run nginx:test -c /etc/nginx/new.conf

這里對(duì)照docker run的語(yǔ)法對(duì)比了下:

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

-c如果作為COMMAND,那么/etc/nginx/new.conf就作為ARG, 即如下:

docker run nginx:test /etc/nginx/new.conf

這時(shí)/etc/nginx/new.conf作為參數(shù)可以替換掉原有的CMD中的參數(shù)。

7.3.3 ENV的使用

ENV可以用來(lái)定義變量:

# 指定進(jìn)入到容器內(nèi)部時(shí)的默認(rèn)路徑
ENV BASE_PATH /opt/local/
WORKDIR $BASE_PATH

7.4 構(gòu)建tomcat Dockerfile案例

7.4.1 準(zhǔn)備原始文件

glic文件,從下面連接獲取。
https://gitee.com/pang123/alpine-tomcat/

tomcat文件,從官網(wǎng)下載,這里下載tomcat8 core包10m。
https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.93/bin/apache-tomcat-8.5.93.tar.gz

基礎(chǔ)鏡像包,這里選用alpine linux,非常小,只有5.61MB,不需要手工下載。

7.4.2 編寫(xiě)Dockerfile

FROM alpine:3.18.3COPY glibc/ .
ADD apache-tomcat-8.5.93.tar.gz /usr/local   
ENV TOMCAT_HOME=/usr/local/apache-tomcat-8.5.93
RUN \mv sgerrand.rsa.pub /etc/apk/keys/sgerrand.rsa.pub; \apk add *.apk; \rm -rf *.apk; \#install jdk and useful utilsecho "http://mirrors.aliyun.com/alpine/v3.18/main/" > /etc/apk/repositories; \echo "http://mirrors.aliyun.com/alpine/v3.18/community/" >> /etc/apk/repositories; \apk upgrade; \apk add --no-cache ca-certificates unzip curl bash bash-completion wget vim net-tools tzdata openjdk8; \rm -rf /tmp/* /var/cache/apk/*; \ln -s $TOMCAT_HOME /usr/local/tomcat;ENV CATALINA_HOME=/usr/local/tomcat \LANG=C.UTF-8 \TZ=Asia/Shanghai
ENV PATH=$CATALINA_HOME/bin:$PATH
WORKDIR /usr/local/tomcat
EXPOSE 8080CMD ["catalina.sh", "run"]

7.4.3 構(gòu)建鏡像

# 構(gòu)建命令語(yǔ)法(最后有一個(gè)點(diǎn)號(hào))
docker build -t 新鏡像名字:TAG .# tomcat案例
docker build -t tomcat:8.5.93 .

構(gòu)建時(shí)間比較長(zhǎng),大約5分鐘,構(gòu)建成功后,在dokcer images中可以查看到鏡像只有190M左右。

在這里插入圖片描述

7.4.4 驗(yàn)證鏡像

docker run -d -p 8080:8080 tomcat:8.5.93

在這里插入圖片描述

7.5 構(gòu)建jdk基礎(chǔ)鏡像(alpine-java8)

由于每次基于alpine構(gòu)建鏡像時(shí)間非常長(zhǎng),所以我們先基于alpine構(gòu)建jdk8環(huán)境的基礎(chǔ)鏡像。
以后安裝java應(yīng)用時(shí),可以直接使用此鏡像擴(kuò)展,也不需要再準(zhǔn)備glibc包,這里jdk環(huán)境是基于openjdk8。

7.5.1 準(zhǔn)備glibc包

https://gitee.com/pang123/alpine-tomcat/下面的glibc文件夾整個(gè)拷貝到和Dockerfilie相同目錄。

7.5.2 編寫(xiě)Dockerfile

FROM alpine:3.18.3
MAINTAINER 硅谷工具人COPY glibc/ .
RUN \mv sgerrand.rsa.pub /etc/apk/keys/sgerrand.rsa.pub; \apk add *.apk; \rm -rf *.apk; \#install jdk and useful utilsecho "http://mirrors.aliyun.com/alpine/v3.18/main/" > /etc/apk/repositories; \echo "http://mirrors.aliyun.com/alpine/v3.18/community/" >> /etc/apk/repositories; \apk upgrade; \apk add --no-cache ca-certificates unzip curl bash bash-completion wget vim net-tools tzdata openjdk8; \rm -rf /tmp/* /var/cache/apk/*;CMD /bin/bash

7.5.3 構(gòu)建鏡像

docker build -t alpine_java8:1.0.0 .

在這里插入圖片描述

7.5.4 驗(yàn)證鏡像

docker run -it alpine_java8:1.0.0 

在這里插入圖片描述

7.5.5 上傳鏡像到docker-hub

7.5.5.1 注冊(cè)創(chuàng)建存儲(chǔ)庫(kù)

先注冊(cè),https://hub.docker.com
然后創(chuàng)建docker-hub的存儲(chǔ)庫(kù)。
在這里插入圖片描述

7.5.5.2 打標(biāo)簽
docker tag alpine_java8:1.0.0 wz220321/alpine_java8:1.0.0

tag后面第一個(gè)alpine_java8:1.0.0是本地的鏡像的名稱(chēng)和版本
tag后面第二個(gè)wz220321/alpine_java8:1.0.0 是docker-hub服務(wù)器存儲(chǔ)庫(kù)的名稱(chēng)和指定的版本號(hào)。
在這里插入圖片描述

7.5.5.3 上傳鏡像

注意:先登錄,然后才能上傳,不然沒(méi)權(quán)限,賬號(hào)和密碼就是注冊(cè)時(shí)填寫(xiě)的。
先登錄成功后,將本地打過(guò)標(biāo)簽的鏡像上次到Docker Hub的倉(cāng)庫(kù)中。

docker login -u wz220321 -p 你的密碼
docker push wz220321/alpine_java8:1.0.0

在這里插入圖片描述

然后去docker_hub上查看就可以看到,這個(gè)包含jdk8的壓縮包僅僅100m左右。
在這里插入圖片描述

我們也可以直接通過(guò)search看到這個(gè)鏡像。
在這里插入圖片描述

7.6 基于自定義的鏡像構(gòu)建微服務(wù)(SpringBoot)案例

7.6.1 準(zhǔn)備微服務(wù)包

準(zhǔn)備好SpringBoot程序,啟動(dòng)端口是9001。
在這里插入圖片描述

本地測(cè)試:
在這里插入圖片描述

程序打包jar
在這里插入圖片描述

7.6.2 編寫(xiě)Dockerfile

這里基于7.5中自己制作的jdk8的鏡像wz220321/alpine_java8鏡像編寫(xiě)。

FROM wz220321/alpine_java8:1.0.0
MAINTAINER 硅谷工具人# 映射本地宿主機(jī)目錄/tmp鏈接到容器的/tmp目錄
VOLUME /tmp
# 將jar包添加到容器中,并重命名
ADD springboot-demo-1.0-SNAPSHOT.jar springboot.jar
# 運(yùn)行jar包
#RUN bash -c 'touch /springboot.jar'
ENTRYPOINT ["java", "-jar", "/springboot.jar"]
EXPOSE 9001

7.6.3 構(gòu)建鏡像

docker build -t springboot:1.0 .

在這里插入圖片描述

7.6.4 運(yùn)行鏡像

docker run -d -p 9001:9001 springboot:1.0

web測(cè)試:
在這里插入圖片描述

通過(guò)上面的案例可以看到這個(gè)容器運(yùn)行springboot程序,整個(gè)鏡像只需要195M就可以了。
alipine是個(gè)非常輕量級(jí)linux,推薦大家使用,如果是部署java程序則可以直接引用我制作的jdk鏡像(wz220321/alpine_java8:1.0.0)。

http://www.risenshineclean.com/news/6218.html

相關(guān)文章:

  • wordpress v4.1廣州市口碑seo推廣
  • 小學(xué)教學(xué)活動(dòng)設(shè)計(jì)方案模板桔子seo網(wǎng)
  • 純靜態(tài)網(wǎng)站怎么做社區(qū)推廣方法有哪些
  • 深圳建網(wǎng)站seo中國(guó)十大it培訓(xùn)機(jī)構(gòu)排名
  • wordpress調(diào)用指定菜單關(guān)鍵詞排名手機(jī)優(yōu)化軟件
  • 網(wǎng)站制作 北京網(wǎng)站建設(shè)公司seo搜索鋪文章
  • 鄭州網(wǎng)站建設(shè)zhuotop網(wǎng)絡(luò)新聞發(fā)布平臺(tái)發(fā)稿
  • 請(qǐng)舉例說(shuō)明什么是網(wǎng)絡(luò)營(yíng)銷(xiāo)seo是做什么工作的
  • 上海seo網(wǎng)站優(yōu)化百度推廣代運(yùn)營(yíng)
  • 建筑八大員證報(bào)考網(wǎng)站seo排名影響因素主要有
  • wordpress301不能用免費(fèi)網(wǎng)站推廣優(yōu)化
  • 管理咨詢(xún)公司有哪些如何網(wǎng)頁(yè)優(yōu)化
  • 珠海商城網(wǎng)站制作西安百度首頁(yè)優(yōu)化
  • 網(wǎng)站開(kāi)發(fā)公司網(wǎng)絡(luò)推廣的作用
  • 廣西網(wǎng)站建設(shè)推廣報(bào)價(jià)網(wǎng)絡(luò)營(yíng)銷(xiāo)軟文范例
  • 盤(pán)龍區(qū)網(wǎng)絡(luò)推廣群排名優(yōu)化軟件官網(wǎng)
  • 尋找徐州網(wǎng)站開(kāi)發(fā)武漢標(biāo)兵seo
  • 做網(wǎng)站做本地服務(wù)器網(wǎng)上怎么注冊(cè)公司免費(fèi)的
  • 環(huán)保網(wǎng)頁(yè)設(shè)計(jì)制作流程上海比較大的優(yōu)化公司
  • 周口學(xué)做網(wǎng)站今天的三個(gè)新聞
  • 網(wǎng)站穩(wěn)定期怎么做免費(fèi)注冊(cè)網(wǎng)頁(yè)網(wǎng)址
  • wordpress主機(jī)怎樣進(jìn)行seo推廣
  • 給個(gè)網(wǎng)站2022年手機(jī)上能用的數(shù)字化營(yíng)銷(xiāo)怎么做
  • 淘寶上面的網(wǎng)站建設(shè)是靠譜廈門(mén)網(wǎng)站seo外包
  • 個(gè)人博客網(wǎng)站建設(shè)方案軟文營(yíng)銷(xiāo)的經(jīng)典案例
  • 阿里巴巴網(wǎng)站建設(shè)基礎(chǔ)服務(wù)交換友情鏈接的渠道
  • 各種類(lèi)型網(wǎng)站建設(shè)售后完善企業(yè)網(wǎng)站營(yíng)銷(xiāo)的優(yōu)缺點(diǎn)及案例
  • 網(wǎng)站模板下載之后怎么做網(wǎng)站服務(wù)器查詢(xún)工具
  • 公司策劃書(shū)模板seo發(fā)包軟件
  • 孝感網(wǎng)站開(kāi)發(fā)找優(yōu)搏360網(wǎng)址大全