docker進階教程之dockerfile優(yōu)化鏡像大小
一、無優(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查看鏡像
五、使用更為輕量級的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進階教程之dockerfile優(yōu)化鏡像大小的文章就介紹到這了,更多相關(guān)dockerfile優(yōu)化鏡像大小內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Dockerfile打包nginx鏡像的實現(xiàn)步驟
- 使用Dockerfile.dockerignore提升Docker鏡像構(gòu)建速度
- docker通過Dockerfile修改鏡像中tomcat的端口
- 查詢Docker鏡像DockerFile的方法步驟
- 編寫Dockerfile和構(gòu)建自定義鏡像的步驟與技巧
- 利用Dockerfile制作個人的鏡像文件詳細(xì)講解
- Docker教程之使用dockerfile生成鏡像
- 使用Dockerfile腳本定制鏡像的方法
- 從docker鏡像里提取dockerfile的兩種方法
- docker通過Dockerfile構(gòu)建mysql鏡像的方法
- dockerfile指令構(gòu)建docker鏡像的示例代碼
- docker使用Dockerfile構(gòu)建鏡像的實現(xiàn)示例
相關(guān)文章
親手教你Docker Compose安裝DOClever的詳細(xì)過程
DOClever是一個可視化免費開源的接口管理工具,DOClever前后端全部采用了javascript來作為我們的開發(fā)語言。這篇文章主要介紹了Docker Compose安裝DOClever的詳細(xì)過程,需要的朋友可以參考下2021-09-09Docker部署Laravel應(yīng)用的實現(xiàn)示例
這篇文章主要介紹了Docker部署Laravel應(yīng)用的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09Docker搭建PHP運行環(huán)境完整步驟(圖文教程)
PHP是一種廣泛使用的編程語言,被用于Web開發(fā)和服務(wù)器管理等各種用途,而Docker則是一種非常流行的容器化平臺,可以方便地管理應(yīng)用程序和環(huán)境,這篇文章主要給大家介紹了關(guān)于Docker搭建PHP運行環(huán)境的完整步驟,需要的朋友可以參考下2023-09-09使用Dockerfile實現(xiàn)數(shù)據(jù)卷的掛載問題(推薦)
Dockerfile就是一個可以用來構(gòu)建鏡像的文件,可以理解為一個腳本文件,可以通過這個腳本文件自定義生成一個我們想要的鏡像,鏡像都是一層一層的,里面的每一條命令就是一層,本文給大家介紹使用Dockerfile實現(xiàn)數(shù)據(jù)卷的掛載,感興趣的朋友一起看看吧2022-03-03Docker 容器文件系統(tǒng)詳細(xì)介紹(圖文)
這篇文章主要介紹了Docker 容器文件系統(tǒng)詳細(xì)介紹(圖文)的相關(guān)資料,這里對Docker 容器文件系統(tǒng)進行了具體的分析詳解,需要的朋友可以參考下2016-12-12