国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用Dockerfile編寫(xiě)源碼安裝Nginx鏡像

這篇具有很好參考價(jià)值的文章主要介紹了使用Dockerfile編寫(xiě)源碼安裝Nginx鏡像。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

????????其實(shí)在Docker倉(cāng)庫(kù)中,存在nginx容器鏡像,但是我們?yōu)槭裁催€有自己來(lái)編寫(xiě)呢,是因?yàn)橛械臅r(shí)候倉(cāng)庫(kù)中的版本,并非我們?cè)谛枰陌姹剧R像,還有一點(diǎn)就因?yàn)榘踩珕?wèn)題,畢竟別人家的東西哪有自己家的東西用著安心呢。

????????Dockerfile是使用源代碼構(gòu)建docker的鏡像,編輯一個(gè)Dockerfile,而后根據(jù)此文件制作;docker可以自動(dòng)通過(guò)讀取Dockerfile中的指令,自動(dòng)構(gòu)建鏡像。Dockerfile是一個(gè)文本文檔包含所有用戶(hù)的命令,可以在命令行上調(diào)用組建一個(gè)鏡像。使用docker build命令的用戶(hù)可以讀取docker file中的連續(xù)指令,自動(dòng)構(gòu)建一個(gè)鏡像。

一,構(gòu)建nginx鏡像

創(chuàng)建目錄存放相關(guān)文件

mkdir nginxdockerfile
cd nginxdockerfile
echo "docker nginx build successful" > index.html

創(chuàng)建dockerfile文件

vi Dockerfile
FROM centos:7
LABEL version="nginx v1"
LABEL "emill"="243254384@qq.com"
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
WORKDIR /usr/local/src
ENV NG_VERSION=nginx-1.25.1
RUN yum -y install epel-release
RUN yum -y install wget
RUN wget http://nginx.org/download/$NG_VERSION.tar.gz && tar xzvf $NG_VERSION.tar.gz 
RUN yum install -y gcc gcc-c++ glibc make autoconf openssl openssl-devel && yum install -y pcre-devel libxslt-devel gd-devel GeoIP GeoIP-devel GeoIP-data
RUN yum clean all 
RUN useradd -M -s /sbin/nologin nginx 
WORKDIR /usr/local/src/$NG_VERSION 
RUN ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-file-aio --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module --with-http_image_filter_module --with-http_geoip_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_stub_status_module && make && make install
ADD index.html /usr/local/nginx/html 
VOLUME /usr/local/nginx/html 
ENV PATH /usr/local/nginx/sbin:$PATH 
EXPOSE 80/tcp 
ENTRYPOINT ["nginx"]
CMD ["-g","daemon off;"]

構(gòu)建鏡像

docker build -t centos7:nginx .

運(yùn)行容器

docker run -d --name nginx -p 8080:80 centos7:nginx

訪(fǎng)問(wèn)即可

http://IP:8080

二,詳細(xì)介紹使用的模塊

#基準(zhǔn)鏡像
FROM centos:7
#作者信息
LABEL version="nginx v1"
LABEL "emill"="243254384@qq.com"
#調(diào)整系統(tǒng)時(shí)間差
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#工作目錄
WORKDIR /usr/local/src/ 
#定義環(huán)境變量
ENV NG_VERSION nginx-1.21.0 
#安裝epel倉(cāng)庫(kù)
RUN yum -y install epel-release 
#安裝wget
RUN yum -y install wget 
#下載nginx文件并解壓
RUN wget http://nginx.org/download/$NG_VERSION.tar.gz && tar xzvf $NG_VERSION.tar.gz 
#安裝編譯依賴(lài)包
RUN yum install -y gcc gcc-c++ glibc make autoconf openssl openssl-devel && yum install -y pcre-devel libxslt-devel gd-devel GeoIP GeoIP-devel GeoIP-data
#清理倉(cāng)庫(kù)
RUN yum clean all 
#創(chuàng)建nginx用戶(hù)
RUN useradd -M -s /sbin/nologin nginx 
#切換工作目錄
WORKDIR /usr/local/src/$NG_VERSION 
#編譯安裝nginx
RUN ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-file-aio --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module --with-http_image_filter_module --with-http_geoip_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_stub_status_module && make && make install
#復(fù)制測(cè)試頁(yè)面到容器中
ADD index.html /usr/local/nginx/html 
#設(shè)置容器中要掛在到宿主機(jī)的目錄
VOLUME /usr/local/nginx/html 
#設(shè)置sbin環(huán)境變量
ENV PATH /usr/local/nginx/sbin:$PATH 
#暴露80端口
EXPOSE 80/tcp 
ENTRYPOINT ["nginx"]
CMD ["-g","daemon off;"]
#當(dāng)ENTRYPOINT和CMD連用時(shí),CMD的命令是ENTRYPOINT命令的參數(shù),兩者連用相當(dāng)于nginx -g "daemon off;"而當(dāng)一起連用的時(shí)候命令格式最好一致(這里選擇的都是json格式的是成功的,如果都是sh模式可以試一下)
1.FROM

功能為指定基礎(chǔ)鏡像,并且必須是第一條指令。 如果不以任何鏡像為基礎(chǔ),那么寫(xiě)法為:FROM scratch。 同 時(shí)意味著接下來(lái)所寫(xiě)的指令將作為鏡像的第一層開(kāi)始

2.RUN

功能為運(yùn)行指定的命令

注意:多行命令不要寫(xiě)多個(gè)RUN,原因是Dockerfile中每一個(gè)指令都會(huì)建立一層. 多少個(gè)RUN就構(gòu)建了多 少層鏡像,會(huì)造成鏡像的臃腫、多層,不僅僅增加了構(gòu)件部署的時(shí)間,還容易出錯(cuò)。 RUN書(shū)寫(xiě)時(shí)的換行 符是\

3.CMD

功能為容器啟動(dòng)時(shí)要運(yùn)行的命令

注意:補(bǔ)充細(xì)節(jié):這里邊包括參數(shù)的一定要用雙引號(hào),就是",不能是單引號(hào)。千萬(wàn)不能寫(xiě)成單引號(hào)。 原因是參數(shù)傳遞后,docker解析的是一個(gè)JSON array

4.RUN和CMD的區(qū)別

不要把RUN和CMD搞混了。 RUN是構(gòu)件容器時(shí)就運(yùn)行的命令以及提交運(yùn)行結(jié)果 CMD是容器啟動(dòng)時(shí)執(zhí)行的命 令,在構(gòu)件時(shí)并不運(yùn)行,構(gòu)件時(shí)緊緊指定了這個(gè)命令到底是個(gè)什么樣子

5.LABEL

功能是為鏡像指定標(biāo)簽,為鏡像寫(xiě)一些注釋信息

但是并不建議這樣寫(xiě),最好就寫(xiě)成一行,如太長(zhǎng)需要換行的話(huà)則使用\符號(hào) 如下:

注意:LABEL會(huì)繼承基礎(chǔ)鏡像種的LABEL,如遇到key相同,則值覆蓋

6.EXPOSE

功能為暴漏容器運(yùn)行時(shí)的監(jiān)聽(tīng)端口給外部 但是EXPOSE并不會(huì)vim 使容器訪(fǎng)問(wèn)主機(jī)的端口 如果想使得容器與主 機(jī)的端口有映射關(guān)系,必須在容器啟動(dòng)的時(shí)候加上 -P參數(shù)

注意:如果在端口號(hào)后面加/tcp,默認(rèn)為tcp協(xié)議,如果需要UDP端口需要添加/udp

7.ENV

功能為設(shè)置環(huán)境變量

8.ADD

一個(gè)復(fù)制命令,把文件復(fù)制到鏡象中。 如果把虛擬機(jī)與容器想象成兩臺(tái)linux服務(wù)器的話(huà),那么這個(gè)命令就類(lèi)似 于scp,只是scp需要加用戶(hù)名和密碼的權(quán)限驗(yàn)證,而ADD不用。

注意:盡量不要把寫(xiě)成一個(gè)文件夾,如果是一個(gè)文件夾了,復(fù)制整個(gè)目錄的內(nèi)容,包括文件系統(tǒng)元數(shù)據(jù)

9.WORKDIR

設(shè)置工作目錄,對(duì)RUN,CMD,ENTRYPOINT,COPY,ADD生效。如果不存在則會(huì)創(chuàng)建,也可以設(shè)置多次

10.VOLUME

可實(shí)現(xiàn)掛載功能,可以將內(nèi)部文件夾掛載到外部

11.ENTRYPOINT

該命令與CMD類(lèi)似,用于執(zhí)行命令使用,還可以與CMD命令一起拼合使用

它與CMD的區(qū)別: ? 相同點(diǎn):只能寫(xiě)一條,如果寫(xiě)多條,那么只有最后一條生效

不同點(diǎn):CMD在創(chuàng)建容器時(shí),在后面添加其他的CMD指令,CMD會(huì)被覆蓋,但是ENTRYPOINT不會(huì)被覆蓋,如果兩個(gè)同時(shí)使用,CMD會(huì)變成ENTRYPOINT的參數(shù)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-685695.html

到了這里,關(guān)于使用Dockerfile編寫(xiě)源碼安裝Nginx鏡像的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 編寫(xiě).NET Dockerfile文件構(gòu)建鏡像

    編寫(xiě).NET Dockerfile文件構(gòu)建鏡像

    創(chuàng)建一個(gè)WebApi項(xiàng)目,并且創(chuàng)建一個(gè)Dockerfile空文件,添加以下代碼,7.0代表的你項(xiàng)目使用的SDK的版本,構(gòu)建的時(shí)候也需要選擇好指定的鏡像tag 我們一步一步來(lái)進(jìn)行講解,首先第一步,F(xiàn)ROM指定了一個(gè)mcr.microsoft.com/dotnet/aspnet:7.0鏡像,并且AS別名base,這一步是選擇aspnet:7.0作為基礎(chǔ)

    2024年01月23日
    瀏覽(15)
  • 【Docker】如何編寫(xiě)Dockerfile,深入理解 Dockerfile:構(gòu)建精簡(jiǎn)且高效的容器鏡像

    【Docker】如何編寫(xiě)Dockerfile,深入理解 Dockerfile:構(gòu)建精簡(jiǎn)且高效的容器鏡像

    Docker 是一種輕量級(jí)的容器化技術(shù),使得應(yīng)用程序和它們的依賴(lài)可以被打包到一個(gè)容器中,方便在不同環(huán)境中運(yùn)行。Dockerfile 是用于定義 Docker 鏡像的文本文件,其中包含了一系列的指令,這些指令描述了鏡像中應(yīng)該包含哪些內(nèi)容和如何配置。 在開(kāi)始編寫(xiě) Dockerfile 之前,確保你

    2024年01月24日
    瀏覽(30)
  • dockerfile 構(gòu)建nginx鏡像

    dockerfile 構(gòu)建nginx鏡像

    http://ip:80

    2024年01月20日
    瀏覽(59)
  • Dockerfile制作Nginx應(yīng)用鏡像

    Dockerfile制作Nginx應(yīng)用鏡像

    創(chuàng)建Dockerfile 創(chuàng)建鏡像 上傳鏡像-harbor 修改hosts文件 修改daemon.json 重啟DOCKER 登錄并上傳 測(cè)試鏡像

    2024年02月12日
    瀏覽(55)
  • dockerfile以alpine為基礎(chǔ)鏡像構(gòu)建nginx鏡像

    dockerfile以alpine為基礎(chǔ)鏡像構(gòu)建nginx鏡像

    Alpine Linux 是一個(gè)社區(qū)開(kāi)發(fā)的面向安全應(yīng)用的輕量級(jí)Linux發(fā)行版。 Alpine 的意思是“高山的”,它采用了musl libc和busybox以減小系統(tǒng)的體積和運(yùn)行時(shí)資源消耗,同時(shí)還提供了自己的包管理工具apk。 由于其小巧、安全、簡(jiǎn)單以及功能完備的特點(diǎn),被廣泛應(yīng)用于眾多Docker容器中。 a

    2023年04月22日
    瀏覽(29)
  • Dockerfile制作Web應(yīng)用系統(tǒng)nginx鏡像

    Dockerfile制作Web應(yīng)用系統(tǒng)nginx鏡像

    目錄 1.所需實(shí)現(xiàn)的具體內(nèi)容 2.編寫(xiě)Dockerfile Dockerfile文件內(nèi)容: 默認(rèn)網(wǎng)頁(yè)內(nèi)容: 3.構(gòu)建鏡像 4.現(xiàn)在我們運(yùn)行一個(gè)容器,查看我們的網(wǎng)頁(yè)是否可訪(fǎng)問(wèn) 5.現(xiàn)在再將我們的鏡像打包并上傳到鏡像倉(cāng)庫(kù) 基于centos基礎(chǔ)鏡像。 指定作者信息。 安裝nginx服務(wù),將提供的dest目錄(提供默認(rèn)主頁(yè)

    2024年02月12日
    瀏覽(21)
  • Dockerfile構(gòu)建Tomcat鏡像(源碼)

    Dockerfile構(gòu)建Tomcat鏡像(源碼)

    目錄 Dockerfile構(gòu)建Tomcat鏡像 1、建立工作目錄 2、編寫(xiě)Dockerfile文件 3、構(gòu)建鏡像 4、測(cè)試容器 5、瀏覽器訪(fǎng)問(wèn)測(cè)試: [root@huyang1 tomcat]# vim Dockerfile 配置如下: [root@huyang1 tomcat]# docker build -t tomcat:new . [root@huyang1 ~]# docker images tomcat:new [root@huyang1 tomcat]# docker run -d -p 8080:8080 --name tomca

    2024年02月14日
    瀏覽(22)
  • Docker容器學(xué)習(xí):Dockerfile制作Web應(yīng)用系統(tǒng)nginx鏡像

    Docker容器學(xué)習(xí):Dockerfile制作Web應(yīng)用系統(tǒng)nginx鏡像

    目錄 編寫(xiě)Dockerfile 1.文件內(nèi)容需求: 2.編寫(xiě)Dockerfile: 3.開(kāi)始構(gòu)建鏡像 ?4.現(xiàn)在我們運(yùn)行一個(gè)容器,查看我們的網(wǎng)頁(yè)是否可訪(fǎng)問(wèn) 推送鏡像到私有倉(cāng)庫(kù) 1.把要上傳的鏡像打上合適的標(biāo)簽 2.登錄harbor倉(cāng)庫(kù) 3.上傳鏡像 1.文件內(nèi)容需求: 基于centos基礎(chǔ)鏡像。 指定作者信息。 安裝nginx服

    2024年02月11日
    瀏覽(119)
  • Dockerfile構(gòu)建SSH、Systemctl、Nginx、Tomcat、MySQL鏡像實(shí)驗(yàn)

    目錄 一、構(gòu)建SSH鏡像 二、構(gòu)建Systemctl鏡像 三、構(gòu)建Nginx鏡像 四、構(gòu)建Tomcat鏡像 五、構(gòu)建MySQL鏡像 1、創(chuàng)建鏡像目錄方便管理 2、創(chuàng)建編寫(xiě)dockerfile文件 3、生成鏡像 4、啟動(dòng)容器并修改root密碼 1、創(chuàng)建鏡像目錄方便管理 2、創(chuàng)建編寫(xiě)dockerfile文件 3、生成鏡像 4、進(jìn)入容器 1、創(chuàng)建

    2024年02月15日
    瀏覽(18)
  • 基于dockerfile構(gòu)建sshd、httpd、nginx、tomcat、mysql、lnmp、redis鏡像

    基于dockerfile構(gòu)建sshd、httpd、nginx、tomcat、mysql、lnmp、redis鏡像

    一、鏡像概述 Docker 鏡像是Docker容器技術(shù)中的核心,也是應(yīng)用打包構(gòu)建發(fā)布的標(biāo)準(zhǔn)格式。一個(gè)完整的鏡像可以支撐多個(gè)容器的運(yùn)行,在Docker的整個(gè)使用過(guò)程中,進(jìn)入一個(gè)已經(jīng)定型的容器之后,就可以在容器中進(jìn)行操作,最常見(jiàn)的操作就是在容器中安裝應(yīng)用服務(wù)。 如果想要把已

    2024年02月14日
    瀏覽(28)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包