docker進(jìn)階教程之dockerfile優(yōu)化鏡像大小
一、無(wú)優(yōu)化構(gòu)建鏡像
mkdir /mnt/nginx ? vim Dockerfile FROM centos:7 RUN yum install -y gcc pcre pcre-devel devel zlib-devel make ADD nginx-1.22.0.tar.gz /mnt/nginx WORKDIR /mnt/nginx/nginx-1.22.0 #關(guān)閉debug日志 RUN sed -i 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc? RUN ./configure --prefix=/usr/local/nginx? RUN make RUN make install EXPOSE 80 VOLUME ["/usr/local/nginx/html"] CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]??





二、不需要輸出的指令丟入/dev/null
FROM centos:7 RUN yum install -y gcc pcre pcre-devel devel zlib-devel make &> /dev/null && yum clean all ADD nginx-1.22.0.tar.gz /mnt/nginx WORKDIR /mnt/nginx/nginx-1.22.0 RUN sed -i 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc RUN ./configure --prefix=/usr/local/nginx &> /dev/null RUN make &> /dev/null RUN make install &> /dev/null RUN rm -rf /mnt/nginx/nginx-1.22.0 EXPOSE 80 VOLUME ["/usr/local/nginx/html"] CMD ["/usr/local/nginx/sbin/nginx""-g","daemon off;"]



三、減少RUN構(gòu)建
FROM centos:7 ADD nginx-1.22.0.tar.gz /mnt/nginx WORKDIR /mnt/nginx/nginx-1.22.0 RUN yum install -y gcc pcre pcre-devel devel zlib-devel make &> /dev/null && \ ?yum clean all && \ ?sed -i 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc && \ ?./configure --prefix=/usr/local/nginx &> /dev/null && \ ?make &> /dev/null && make install &> /dev/null &&\ ?rm -rf /mnt/nginx/nginx-1.22.0 EXPOSE 80 VOLUME ["/usr/local/nginx/html"] CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]

docker build -t nginx:v3 . 構(gòu)建鏡像
docker images查看鏡像



四、多階段構(gòu)建
FROM centos:7 as build? ADD nginx-1.22.0.tar.gz /mnt/nginx? WORKDIR /mnt/nginx/nginx-1.22.0 RUN yum install -y gcc pcre pcre-devel devel zlib-devel make &> /dev/null && \ yum clean all &&\ sed -i 's/CFLAGS="$CFLAGS -g"/#CFLAGS="$CFLAGS -g"/g' auto/cc/gcc && \ ./configure --prefix=/usr/local/nginx &> /dev/null && \ make &>/dev/null && \ make install &>/dev/null && \ rm -rf /mnt/nginx/nginx-1.22.0 FROM centos:7 EXPOSE 80 VOLUME ["/usr/local/nginx/html"] COPY --from=build /usr/local/nginx /usr/local/nginx CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]
docker build -t nginx:v4?. 構(gòu)建鏡像 docker images查看鏡像




五、使用更為輕量級(jí)的linux發(fā)行版本
debian
alpine
apt add
Sandbox
Busybox
#下載debian壓縮包 wget http://download.openvz.org/template/precreated/debian-7.0-x86-minimal.tar.gz docker import debian-7.0-x86-minimal.tar.gz -- debian:v1 生成鏡像 docker images 查看
總結(jié)
到此這篇關(guān)于docker進(jìn)階教程之dockerfile優(yōu)化鏡像大小的文章就介紹到這了,更多相關(guān)dockerfile優(yōu)化鏡像大小內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Dockerfile打包nginx鏡像的實(shí)現(xiàn)步驟
- 使用Dockerfile.dockerignore提升Docker鏡像構(gòu)建速度
- docker通過(guò)Dockerfile修改鏡像中tomcat的端口
- 查詢(xún)Docker鏡像DockerFile的方法步驟
- 編寫(xiě)Dockerfile和構(gòu)建自定義鏡像的步驟與技巧
- 利用Dockerfile制作個(gè)人的鏡像文件詳細(xì)講解
- Docker教程之使用dockerfile生成鏡像
- 使用Dockerfile腳本定制鏡像的方法
- 從docker鏡像里提取dockerfile的兩種方法
- docker通過(guò)Dockerfile構(gòu)建mysql鏡像的方法
- dockerfile指令構(gòu)建docker鏡像的示例代碼
- docker使用Dockerfile構(gòu)建鏡像的實(shí)現(xiàn)示例
相關(guān)文章
親手教你Docker Compose安裝DOClever的詳細(xì)過(guò)程
DOClever是一個(gè)可視化免費(fèi)開(kāi)源的接口管理工具,DOClever前后端全部采用了javascript來(lái)作為我們的開(kāi)發(fā)語(yǔ)言。這篇文章主要介紹了Docker Compose安裝DOClever的詳細(xì)過(guò)程,需要的朋友可以參考下2021-09-09
Docker部署Laravel應(yīng)用的實(shí)現(xiàn)示例
這篇文章主要介紹了Docker部署Laravel應(yīng)用的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
docker鏡像消失的問(wèn)題及臨時(shí)解決方案
本文主要介紹了docker鏡像消失的問(wèn)題及臨時(shí)解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-05-05
Docker搭建PHP運(yùn)行環(huán)境完整步驟(圖文教程)
PHP是一種廣泛使用的編程語(yǔ)言,被用于Web開(kāi)發(fā)和服務(wù)器管理等各種用途,而Docker則是一種非常流行的容器化平臺(tái),可以方便地管理應(yīng)用程序和環(huán)境,這篇文章主要給大家介紹了關(guān)于Docker搭建PHP運(yùn)行環(huán)境的完整步驟,需要的朋友可以參考下2023-09-09
docker容器時(shí)區(qū)錯(cuò)誤問(wèn)題
常出現(xiàn)docker中運(yùn)行的容器獲取到的時(shí)間與北京時(shí)間相差8小時(shí)的問(wèn)題,其實(shí)是因?yàn)槿萜鬟\(yùn)行的時(shí)區(qū)不正確。本文主要介紹了docker容器時(shí)區(qū)錯(cuò)誤問(wèn)題,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12
docker安裝rabbitmq無(wú)法進(jìn)入管理頁(yè)面的問(wèn)題
這篇文章主要介紹了docker安裝rabbitmq無(wú)法進(jìn)入管理頁(yè)面的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
使用Dockerfile實(shí)現(xiàn)數(shù)據(jù)卷的掛載問(wèn)題(推薦)
Dockerfile就是一個(gè)可以用來(lái)構(gòu)建鏡像的文件,可以理解為一個(gè)腳本文件,可以通過(guò)這個(gè)腳本文件自定義生成一個(gè)我們想要的鏡像,鏡像都是一層一層的,里面的每一條命令就是一層,本文給大家介紹使用Dockerfile實(shí)現(xiàn)數(shù)據(jù)卷的掛載,感興趣的朋友一起看看吧2022-03-03
Docker 容器文件系統(tǒng)詳細(xì)介紹(圖文)
這篇文章主要介紹了Docker 容器文件系統(tǒng)詳細(xì)介紹(圖文)的相關(guān)資料,這里對(duì)Docker 容器文件系統(tǒng)進(jìn)行了具體的分析詳解,需要的朋友可以參考下2016-12-12

