在自定义 docker 映像中安装 Docker

Installing Docker in custom docker image

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

Docker文件

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 存储库添加到 yum 配置管理器。

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

我用我构建的名为 eksutil 的容器化实用程序做了类似的事情(link. My image is based off of amazonlinux:2 which should be the same base image the aws-cli container uses

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

RUN amazon-linux-extras install docker -y