Docker:如何提取特定的构建ID?

Sam*_*Sam 18 docker dockerhub

我想总是拉一个特定的版本,而不仅仅是最新版本.

一个随机的例子:https://registry.hub.docker.com/u/aespinosa/jenkins/builds_history/9511/

我这样做是因为我只想部署我审核过的版本.这目前可能吗?还是我被迫分叉他们自己做?

Joe*_*l B 28

您可以使用以下语法通过摘要提取特定图像:

docker pull ubuntu@sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2
Run Code Online (Sandbox Code Playgroud)

如果需要查找哈希值,则在推/拉图像时输出.一些自动构建在最后输出它.我试着寻找哈希,docker inspect但它似乎没有,所以你必须删除图像并再次拉它以查看哈希.

  • 使用docker ce 17.05,我能够从本地图像中检索摘要:`docker images --digest` (3认同)
  • 或`docker image inspect --format ='{{index .RepoDigests 0}}'$ IMAGE`用于特定图像 (3认同)

fab*_*ioM 6

我这样做的方法是标记每个构建

docker build -t $NAMESPACE/$APP_NAME:$BUILD_SHA1 .
docker tag \
    $NAMESPACE/$APP_NAME:$SHA1 \
    $DOCKER_REGISTRY/$NAMESPACE/$APP_NAME:$SHA1
docker push $DOCKER_REGISTRY/$NAMESPACE/$APP_NAME:$SHA1
Run Code Online (Sandbox Code Playgroud)

然后你拉出特定的标签

docker pull $DOCKER_REGISTRY/$NAMESPACE/$APP_NAME:$SHA1
Run Code Online (Sandbox Code Playgroud)

  • 但标签并不是不可变的,如果没有不可变性,这如何安全呢? (7认同)