alpine
更小,下载更快,并且减少了攻击面。RUN
指令中使用 &&
连接多个命令)。apt-get clean
)。如图所示
2. 图像和容器的安全保障不要在容器中使用 root 用户:使用 Dockerfile 中的 USER
指定一个非 root 用户。
确保 Docker 及其使用的镜像定期更新。
使用 COPY
而不是 ADD
:COPY
更直观,不会像 ADD
那样自动解压缩文件,减少不必要的复杂性。
.gitignore
的 .dockerignore
文件,避免不必要的文件被复制到镜像中。latest
标签,因为这可能导致不可预知的行为;将镜像锁定在特定版本,这样可以确保稳定性和可重复性。这是一个图片:
4. 使用 Docker Compose 部署多容器应用程序--memory
和 --cpus
)。--read-only
)。{:width="200"} (点击图片查看)
6: 日志记录和监视请参见图片。
7. 容器间的安全通信如图所示,这是一张示例图片:
8. 容器健康状况和生命周期管理HEALTHCHECK
指令)。docker system prune
)以节省磁盘空间。多阶段构建方法使你能够通过将构建依赖项与运行时需求分开,来创建更精简的生产环境。
FROM serversideup/php:8.2-cli-v2.2.1 as builder ARG LARAVEL_ENV_ENCRYPTION_KEY COPY ./ /var/www WORKDIR /var/www RUN <<EOF composer install --ignore-platform-reqs --no-interaction --no-dev --prefer-dist --optimize-autoloader php artisan env:decrypt --force EOF # ================================================== # FROM serversideup/php:8.2-fpm-nginx-v2.2.1 ENV AUTORUN_LARAVEL_MIGRATION=true ENV SSL_MODE=off ENV PHP_MEMORY_LIMIT=128M ENV PHP_MAX_EXECUTION_TIME=30 WORKDIR /var/www/html COPY --chown=$PUID:$PGID --from=builder /var/www/ /var/www/html RUN php artisan optimize HEALTHCHECK CMD curl -s --fail http://localhost/health || exit 1 CMD ["su", "webuser", "-c", "php artisan schedule:work"] EXPOSE 80
全屏模式 退出全屏
10. 使用 Build Kit, 加快 Docker 构建Docker BuildKit 是一个可选的图像构建引擎,与传统过程相比,BuildKit 能提供显著的改进。BuildKit 可以并行构建图像层,从而大幅加快整体构建速度。
尽管 BuildKit 现在已经很稳定,Docker 默认情况下仍然没有将其内置。如果你想使用它的功能,确保在你的 Docker 客户端中启用 BuildKit。有一个活跃的提案打算将 BuildKit 设为标准构建引擎,但仍有一些未解决的问题阻碍了这次切换。标准构建引擎
===================================
遵守这些最佳实践可以简化开发,增强安全性,并使扩展和维护Docker容器更简单。
如果这对你有帮助,就支持一下吧😉
没钱 🙅🏻♀️ 只需点击订阅YouTube频道。别无他求。
Linktree个人资料: https://linktr.ee/DevOps_Descent
**GitHub:https://github.com/devopsdescent