首页 > 解决方案 > 为 Dockerfile 选择 TAG 的好方法

问题描述

我想知道,有什么好方法来决定Dockerfile.

例如,我很清楚我的要求。

  1. 我需要 Python 3.6
  2. 由于体积小,我需要 Alpine 发行版。

我应该选择

FROM python:3.6.6-alpine3.8

或者

FROM python3.6-alpine

标签: dockerdockerfile

解决方案


即使通常python:3.6-alpine是.python:3.6.6-alpine3.8python:3.6.6-alpine3.8

Dockerfile它避免了对阅读 的人以及使用图像的人的误解,例如:

哦!为什么该库在图像中不可用?也许是因为 Alpine 版本?顺便问一下,Alpine 版本是什么?我去看看/etc/alpine-release看看...

对于 Python 版本,它更复杂,因为使用标签,如果版本发布3.6.6,您的构建最终可能会失败;3.6.7实际上,通过查看Docker store 上的 Python 图像版本,似乎只保留了具有最新修复版本的图像。但这一切都取决于您的镜像是否需要重建,或者它是否只是推送一次到您自己的注册表然后用作基础镜像。如果需要定期构建,在这种特殊情况下,我可能会使用3.6-alpine3.8,因为通常情况下,修复版本不会删除兼容性,只会添加小的改进/错误修复。

简而言之,选择标签时无需花费任何成本,并在使用图像时节省大量解释:您只需阅读Dockerfile. 但要小心,如果这些标签的预期寿命很短。


推荐阅读