【问题标题】:Installing Docker in custom docker image在自定义 docker 镜像中安装 Docker
【发布时间】:2021-06-06 19:03:45
【问题描述】:

这就是我想要做的。我有一个 CICD 管道,用于将 docker 映像推送到 ECR。在此管道中,我使用了一个具有 AWSCLIv2、kubectl 的自定义 Docker 映像,并且我还尝试将 docker 集成到此自定义映像中。我知道这是可能的,但我有一些障碍。最初我的解决方案支持 AWSCLI 版本 1,但我需要 AWSCLIv2。我了解到 AWSCLI 的 v2 有点复杂,所以这就是我使用位于 here 的亚马逊官方图片的原因。下面是我的dockerfile。当我尝试构建我的图像时,我收到一条错误消息,指出没有可用的 docker 包,这让我感到困惑,因为我之前使用 yum 安装了 docker。任何建议将不胜感激。

Dockerfile

FROM amazon/aws-cli

ARG KUBECTL_VERSION=1.17.5

RUN yum update -y \
  && yum install docker -y \
  && service docker start

RUN yum install curl -y \
  && curl -sLO https://storage.googleapis.com/kubernetes-release/release/v${KUBECTL_VERSION}/bin/linux/amd64/kubectl \
  && mv kubectl /usr/bin/kubectl \
  && chmod +x /usr/bin/kubectl

WORKDIR /apps

错误

Step 3/5 : RUN yum update -y   && yum install docker -y   && service docker start
---> Running in e2473ec54a07
Loaded plugins: ovl, priorities
No packages marked for update
Loaded plugins: ovl, priorities
No package docker available.
Error: Nothing to do
The command '/bin/sh -c yum update -y   && yum install docker -y   && service docker start' returned a non-zero code: 1

【问题讨论】:

  • 如果您需要 docker 从容器内的 Dockerfile 构建 docker 映像,我建议您查看kaniko

标签: amazon-web-services docker bitbucket-pipelines amazon-ecr


【解决方案1】:

我使用我构建的名为 eksutil (link) 的容器化实用程序执行类似操作。我的图像基于 amazonlinux:2,它应该与 aws-cli container uses 相同的基本图像。

在我的 dockerfile 中,我可以使用以下语句安装 docker 二进制文件:

RUN amazon-linux-extras install docker -y

【讨论】:

    【解决方案2】:

    您需要先将 docker repo 添加到 yum 配置管理器。

    https://docs.docker.com/engine/install/centos/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-21
      • 2021-05-30
      • 1970-01-01
      • 2022-11-11
      • 2022-01-08
      • 1970-01-01
      相关资源
      最近更新 更多