最小化基于 CentOS 的 Docker 图像
Minimize CentOS-based Docker image
我基于CentOS镜像构建了一个PHP-FPM镜像
FROM centos:7
RUN yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm && \
yum -y install php-fpm php-mysqlnd php-mbstring php-intl php-amqp php-redis php-opcache --enablerepo remi,remi-php56 && \
groupadd -g 1000 nginx && \
useradd -u 1000 -g 1000 nginx
EXPOSE 9000
CMD ["php-fpm", "-F"]
并意识到最终图像相当大(超过 350MB)。请告诉我在 Docker Hub 上哪里可以删除不需要的文件作为一些基于 Debian 的映像?
rm -rf /var/lib/apt/lists/*
rm -rf /var/lib/mysql
感谢您的帮助!
您可以尝试使用 "remi-safe" 存储库中的 SCL 包 (php56-php*)(并使用 /opt/remi/php56/root/usr/sbin/php-fpm 命令)。
php-* 软件包同时提供 NTS 和 ZTS(线程安全)构建,php56-php-* 软件包仅提供标准 NTS 构建(和 ZTS在你的情况下不需要构建)所以更小。
真的不知道你会节省多少。
您可以像这样使用 yum clean all
清理 yums 缓存:
RUN yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm && \
yum -y install php-fpm php-mysqlnd php-mbstring php-intl php-amqp php-redis php-opcache --enablerepo remi,remi-php56 && \
groupadd -g 1000 nginx && \
useradd -u 1000 -g 1000 nginx && \
yum clean all
这节省了大约 70 MB。
如果这还不够,您可以考虑使用不同的基础映像,例如 BusyBox 或 Alpine.
Centos 已经有大约 170 MB
我基于CentOS镜像构建了一个PHP-FPM镜像
FROM centos:7
RUN yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm && \
yum -y install php-fpm php-mysqlnd php-mbstring php-intl php-amqp php-redis php-opcache --enablerepo remi,remi-php56 && \
groupadd -g 1000 nginx && \
useradd -u 1000 -g 1000 nginx
EXPOSE 9000
CMD ["php-fpm", "-F"]
并意识到最终图像相当大(超过 350MB)。请告诉我在 Docker Hub 上哪里可以删除不需要的文件作为一些基于 Debian 的映像?
rm -rf /var/lib/apt/lists/*
rm -rf /var/lib/mysql
感谢您的帮助!
您可以尝试使用 "remi-safe" 存储库中的 SCL 包 (php56-php*)(并使用 /opt/remi/php56/root/usr/sbin/php-fpm 命令)。
php-* 软件包同时提供 NTS 和 ZTS(线程安全)构建,php56-php-* 软件包仅提供标准 NTS 构建(和 ZTS在你的情况下不需要构建)所以更小。
真的不知道你会节省多少。
您可以像这样使用 yum clean all
清理 yums 缓存:
RUN yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm && \
yum -y install php-fpm php-mysqlnd php-mbstring php-intl php-amqp php-redis php-opcache --enablerepo remi,remi-php56 && \
groupadd -g 1000 nginx && \
useradd -u 1000 -g 1000 nginx && \
yum clean all
这节省了大约 70 MB。
如果这还不够,您可以考虑使用不同的基础映像,例如 BusyBox 或 Alpine.
Centos 已经有大约 170 MB