我在 docker hub 中创建了一个私有存储库。
我的疑问是
我有一个从我的构建过程生成的docker镜像.我希望使用标签构建ID和"最新"来标记最新的构建映像.我看到有两种方法可以做到这一点.
第一种方法 - (添加多个标签并推送一次)
docker tag <id> <user>/<image>:build_id
docker tag <id> <user>/<image>:latest
docker push <user>/<image>
Run Code Online (Sandbox Code Playgroud)
第二 - 单独标记并推送
docker tag <id> <user>/<image>:build_id
docker push <user>/<image>:build_id
docker tag <id> <user>/<image>:latest
docker push <user>/<image>:latest
Run Code Online (Sandbox Code Playgroud)
docker文档说明如果注册表中有一个已经有特定标记的图像,那么使用相同标记的新图像的docker push会覆盖之前的图像.
1.上面指定的第一和第二选项在功能上是否相同?
2.有任何首选方式/最佳做法吗?
我正在创建一个 github docker 容器操作,其中涉及许多依赖项 python、node、pypi 包和 npm 包。为了加快操作速度,我将大量依赖项安装从入口点移至 Dockerfile。现在我的动作运行得非常快,但每次构建动作都需要很长时间。
有没有办法可以预先构建该操作,或者我是否需要将我的操作 docker 映像发布到某处的存储库并从我的自定义映像提供数据?
作为参考,这是我的 Dockerfile。
FROM python:3
LABEL "com.github.actions.name"="kedro-action"
LABEL "com.github.actions.description"="A Github Action to run kedro commands"
LABEL "com.github.actions.icon"="it-branch"
LABEL "com.github.actions.color"="black"
LABEL "repository"="http://github.com/WaylonWalker/kedro-action"
LABEL "maintainer"="Waylon Walker <waylon@waylonwalker.com>"
RUN apt-get update
RUN apt-get install -y jq
ENV PYENV_ROOT /root/.pyenv
ENV PATH $PYENV_ROOT/shims:$PYENV_ROOT/bin:$PATH
RUN curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
### INSTALL PYTHON ###
RUN pyenv install 3.7.6
RUN pyenv global 3.7.6
RUN python -m pip install --upgrade pip
RUN pip install kedro
RUN …Run Code Online (Sandbox Code Playgroud) docker docker-repository github-actions github-package-registry
以前使用容器注册表时,可以使用此方法在项目之间复制容器
但是我无法使用 ArtifactRegistry 来实现此功能。如果我尝试
gcloud artifacts docker tags add \
us-east4-docker.pkg.dev/source-proj/my-repo/my-image:latest \
us-east4-docker.pkg.dev/dest-proj/my-repo/my-image:latest
Run Code Online (Sandbox Code Playgroud)
它给出了错误
ERROR: (gcloud.artifacts.docker.tags.add) Image us-east4-docker.pkg.dev/source-proj/my-repo/my-image
does not match image us-east4-docker.pkg.dev/dest-proj/my-repo/my-image
Run Code Online (Sandbox Code Playgroud)
我进行了搜索,但找不到任何有关如何执行此操作的示例或文档。
google-container-registry container-image docker-repository google-artifact-registry
docker 容器的带宽是否与主机容器相同?或者我们是否需要配置 min 和(或)max。我注意到如果我们需要运行 CPU 密集型作业,我们需要覆盖默认 RAM(2 GB)和交换空间配置。我们还需要配置磁盘空间吗?或者它是否默认获得与实际硬盘一样多的空间。
我指的是此链接-Docker pull。
默认情况下,docker pull从Docker Hub(https://hub.docker.com)提取图像。
我想知道此链接在我们本地计算机设置中的何处配置。我正在Windows 10上使用Docker。