1. 镜像优化要求
要求:
- 选择最精简的镜像(重)
- 减少镜像层数
- 清理镜像构建的中间产物。
- 注意优化网络请求(提高构建速度)
- 尽量使用构建缓存
- 使用多阶构建镜像(重)
1.1 直接建立
1)创建dockerfile:部署一个nginx镜像
[root@docker docker]# vim dockerfile
FROM rhel7
EXPOSE 80
COPY dvd.repo /etc/yum.repos.d/
RUN yum install -y gcc make pcre-devel zlib-devel
ADD nginx-1.15.9.tar.gz /mnt
WORKDIR /mnt/nginx-1.15.9
RUN ./configure --prefix=/usr/local/nginx
RUN make
RUN make install
CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]
2)编写yum文件:
[root@docker docker]# vim dvd.repo
[dvd]
name=rhel7.3
baseurl=http://172.25.5.250/rhel7.3
gpgcheck=0
3)建立镜像:
[root@docker docker]# docker build -t nginx-song:v1
Rpmdb checksum is invalid: dCDPT(pkg checksums): zlib-devel.x86_64 0:1.2.7-17.el7 - u
# 出现错误。
4)修改文件:
FROM rhel7
EXPOSE 80
COPY dvd.repo /etc/yum.repos.d/
RUN rpmdb --rebuilddb
RUN yum install -y gcc make pcre-devel zlib-devel
ADD nginx-1.15.9.tar.gz /mnt
WORKDIR /mnt/nginx-1.15.9
RUN ./configure --prefix=/usr/local/nginx
RUN make
RUN make install
CMD ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]
5)再次构建:构建成功
[root@docker docker]# docker build -t nginx-song:v1 .
Sending build context to Docker daemon 148.1MB
………………
Successfully built 19d878c879ee
Successfully tagged nginx-song:v1
6)查看镜像大小:296M
[root@docker docker]# docker images
REPOSITORY TAG IMAGE ID CREATED