亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

docker封裝鏡像及優(yōu)化方式

 更新時間:2024年06月11日 10:53:28   作者:weixin_43635039  
這篇文章主要介紹了docker封裝鏡像及優(yōu)化方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

鏡像分層結(jié)構(gòu)

1.共享宿主機的kernel

2.base鏡像提供的是最小的Linux發(fā)行版

3.同一docker主機支持運行多種Linux發(fā)行版

4.采用分層結(jié)構(gòu)的最大好處是:共享資源

比如當你已經(jīng)拉取Nginx 1.17版本的鏡像之后,若再次拉取Nginx 1.16 版本時,只需要下載不同的層即可,相同的層可以共享使用,這樣就可以節(jié)省資源和網(wǎng)絡(luò)帶寬。

當你刪除其中某個鏡像版本時,也只會刪除掉不一樣的層,因為其中共享的層另一個版本需要使用。

鏡像的構(gòu)建

運行容器+修改容器+將容器保存為新的鏡像

缺點:

  • 效率低、可重復(fù)性弱、容易出錯
  • 使用者無法對鏡像進行審計,存在安全隱患

交互式運行此鏡像

-it交互式

刪除

docker rm -f 刪除正在運行的鏡像

運行

新建三個文件

docker ps -a 顯示已經(jīng)停掉的鏡像

封裝鏡像

把剛才創(chuàng)建的三個文件封裝到v1,如果只退出docker,不會被刪

多加了一層,目前所在的操作都在demo里,而不是busybox

–rm 退出時,自動刪除,回收

之前的只封裝在最上面一層,刪除時也只刪除了一層

rmi 是刪除鏡像

Dockfile

和之前的commit是一一對應(yīng)的

定制一個首頁,放進目錄路徑里

后面的.代表,從各處尋找文件,建立

會找到之前創(chuàng)建的dockerfile

missing代表在官方構(gòu)建的,而不是本機執(zhí)行

相對路徑,不能把文件放在根底下,最好創(chuàng)建一個空的文件夾比如/docker

換一個centos鏡像

如果直接ctrl+d就會刪除,ctrl+q+p之后,就會暫時保存。attach又會恢復(fù)

dockerfile常用命令

FROM

  • 指定base鏡像
  • 如果本地不存在會從遠程倉庫下載

MAINTAINER

  • 設(shè)置鏡像的作者

COPY

  • 把文件從build context復(fù)制到鏡像
  • 支持兩種形式:COPY src dest 和 COPY [“src”, “dest”]

ADD

  • 用法與COPY類似,不同的是src可以是歸檔壓縮文件,文件會被自動解壓到
  • dest,也可以自動下載URL并拷貝到鏡像:
ADD html.tar /var/www
ADD http://ip/html.tar /var/www

ENV

  • 設(shè)置環(huán)境變量,變量可以被后續(xù)的指令使用:
ENV HOSTNAME sevrer1.example.com

EXPOSE

  • 如果容器中運行應(yīng)用服務(wù),可以把服務(wù)端口 暴露出去:
  • EXPOSE 80

VOLUME

  • 申明數(shù)據(jù)卷,通常指定的是應(yīng)用的數(shù)據(jù)掛在點:
VOLUME [“/var/www/html”]

WORKDIR

  • 為RUN、CMD、ENTRYPOINT、ADD和COPY指令設(shè)置鏡像中的當
  • 前工作目錄,如果目錄不存在會自動創(chuàng)建。

在宿主機自動創(chuàng)建目錄,掛載在容器內(nèi)

刪除之后還在,卷的目的就是持久化

在centos7中創(chuàng)建

shell和exec的區(qū)別

cmd可以被覆蓋

做一個完整的nginx封裝

FROM centos:7
ADD nginx-1.21.1.tar.gz /mnt
RUN yum install -y gcc make pcre-devel openssl-devel
WORKDIR /mnt/nginx-1.21.1
RUN sed -i 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc
RUN ./configure --with-http_ssl_module --with-http_stub_status_module
RUN make
RUN make install
COPY index.html /usr/local/nginx/html
CMD ["/usr/local/nginx/sbin/nginx", "-g", "daemon off;"]

鏡像的優(yōu)化

太大了,開始優(yōu)化

減少鏡像層

FROM centos:7
ADD nginx-1.21.1.tar.gz /mnt
WORKDIR /mnt/nginx-1.21.1
RUN yum install -y gcc make pcre-devel openssl-devel && sed -i 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc &&  ./configure --with-http_ssl_module --with-http_stub_status_module &&  make &&  make install && yum clean all  && rm -rf /mnt/nginx-1.21.1
COPY index.html /usr/local/nginx/html
CMD ["/usr/local/nginx/sbin/nginx", "-g", "daemon off;"]

報錯

添加:net.ipv4.ip_forward=1

多階段構(gòu)建

FROM centos:7 as build
ADD nginx-1.21.1.tar.gz /mnt
WORKDIR /mnt/nginx-1.21.1
RUN yum install -y gcc make pcre-devel openssl-devel && sed -i 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc &&  ./configure --with-http_ssl_module --with-http_stub_status_module &&  make &&  make install && yum clean all  && rm -rf /mnt/nginx-1.21.1
FROM centos:7
COPY --from=build  /usr/local/nginx /usr/local/nginx
COPY index.html /usr/local/nginx/html
CMD ["/usr/local/nginx/sbin/nginx", "-g", "daemon off;"]

選擇更加精簡的基礎(chǔ)鏡像

FROM nginx:latest as base

ARG TIME_ZONE
RUN mkdir -p /opt/var/cache/nginx && \
    cp -a --parents /usr/lib/nginx /opt && \
    cp -a --parents /usr/share/nginx /opt && \
    cp -a --parents /var/log/nginx /opt && \
    cp -aL --parents /var/run /opt && \
    cp -a --parents /etc/nginx /opt && \
    cp -a --parents /etc/passwd /opt && \
    cp -a --parents /etc/group /opt && \
    cp -a --parents /usr/sbin/nginx /opt && \
    cp -a --parents /usr/sbin/nginx-debug /opt && \
    cp -a --parents /lib/x86_64-linux-gnu/ld-* /opt && \
    cp -a --parents /lib/x86_64-linux-gnu/libpcre.so.* /opt && \
    cp -a --parents /lib/x86_64-linux-gnu/libz.so.* /opt && \
    cp -a --parents /lib/x86_64-linux-gnu/libc* /opt && \
    cp -a --parents /lib/x86_64-linux-gnu/libdl* /opt && \
    cp -a --parents /lib/x86_64-linux-gnu/libpthread* /opt && \
    cp -a --parents /lib/x86_64-linux-gnu/libcrypt* /opt && \
    cp -a --parents /usr/lib/x86_64-linux-gnu/libssl.so.* /opt && \
    cp -a --parents /usr/lib/x86_64-linux-gnu/libcrypto.so.* /opt && \
    cp /usr/share/zoneinfo/${TIME_ZONE:-ROC} /opt/etc/localtime

FROM gcr.io/distroless/base-debian10

COPY --from=base /opt /

EXPOSE 80 443

CMD ["nginx", "-g", "daemon off;"]

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用Docker搭建私有GitLab的兩種方案

    使用Docker搭建私有GitLab的兩種方案

    本文給大家分享兩種Docker搭建私有GitLab的方法,本文給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-07-07
  • docker打包golang應(yīng)用的過程分析

    docker打包golang應(yīng)用的過程分析

    這篇文章主要介紹了docker打包golang應(yīng)用的過程分析,本文給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • 阿里云服務(wù)器部署?Docker?Swarm集群

    阿里云服務(wù)器部署?Docker?Swarm集群

    這篇文章主要介紹了阿里云服務(wù)器部署?Docker?Swarm集群,Docker Swarm 的作用就是用來管理Docker集群的平臺,本文給大家介紹了Docker Swarm的基本概念和Docker Swarm 和 k8s的區(qū)別,需要的朋友可以參考下
    2022-07-07
  • 聊聊kubernetes1.20用containerd替換docker(shim)的問題

    聊聊kubernetes1.20用containerd替換docker(shim)的問題

    這篇文章主要介紹了kubernetes1.20用containerd替換docker(shim),本文給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • Docker沒有啟動環(huán)境變量的問題解決

    Docker沒有啟動環(huán)境變量的問題解決

    在使用Docker容器時,有時候我們會遇到一個問題,就是在容器中沒有啟動環(huán)境變量,本文主要介紹了Docker沒有啟動環(huán)境變量的問題解決,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • 詳解Docker創(chuàng)建php開發(fā)環(huán)境遇到的權(quán)限問題解決方案

    詳解Docker創(chuàng)建php開發(fā)環(huán)境遇到的權(quán)限問題解決方案

    本篇文章主要介紹了Docker創(chuàng)建php開發(fā)環(huán)境遇到的權(quán)限問題解決方案,具有一定的參考價值,有需要的可以了解一下。
    2016-11-11
  • Jenkins Docker靜態(tài)agent節(jié)點的構(gòu)建過程

    Jenkins Docker靜態(tài)agent節(jié)點的構(gòu)建過程

    這篇文章主要介紹了Jenkins Docker靜態(tài)agent節(jié)點的構(gòu)建,靜態(tài)節(jié)點就是通過java -jar這條命令去啟動起來就可以了,本文通過圖文實例相結(jié)合給大家介紹的非常詳細,需要的朋友可以參考下
    2021-10-10
  • 詳解使用docker搭建kafka環(huán)境

    詳解使用docker搭建kafka環(huán)境

    本篇文章主要介紹了詳解使用docker搭建kafka環(huán)境 ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • Docker 數(shù)據(jù)管理Named volume詳解

    Docker 數(shù)據(jù)管理Named volume詳解

    這篇文章主要介紹了Docker 數(shù)據(jù)管理Named volume詳解的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • 詳解制作各種docker鏡像

    詳解制作各種docker鏡像

    本篇文章主要介紹了制作各種docker鏡像,詳解的介紹了各種制作的docker鏡像的方法,有興趣的可以了解一下
    2017-05-05

最新評論