如果您使用的是 :latest
、:alpine
、:emulators
、:latest
、:slim
以及:debian_component_based
个 Docker 映像
基于 debian 的 :stable
映像,可减小映像大小并提升安全性
修复。如需改用 :stable
映像,您可以将 :stable
Docker 映像扩展为您使用的基于 Debian 的映像。
在某些情况下(例如,安装较旧的不兼容依赖项,如 python2 或较旧的 JDK 等),扩展 :stable
映像并不总是可行的。其中
您可能需要构建自己的 Dockerfile
扩展 :stable
Docker 映像
您可以将 :stable
Docker 映像用作基础映像,并安装其他组件和 apt 软件包,以将其扩展为其他基于 Debian 的 Docker 映像(即 :latest
、:emulators
和 :slim
)。如需扩展 :stable
Docker 映像,我们可以执行以下任一操作:
通过在运行时进行自定义来扩展 :stable
基础映像
您可以通过在运行时对其进行自定义,将 :stable
Docker 映像扩展为 :latest
、:emulators
或 :slim
映像。
运行以下 docker run
命令,以便在运行时将 :stable
Docker 映像扩展到 :latest
Docker 映像:
# Running as latest
$ docker run -e APT_PACKAGES='curl python3-crcmod apt-transport-https lsb-release openssh-client git make gnupg' \
-e COMPONENTS='google-cloud-cli-datastore-emulator google-cloud-cli-pubsub-emulator google-cloud-cli-bigtable-emulator google-cloud-cli-firestore-emulator google-cloud-cli-spanner-emulator google-cloud-cli-cbt google-cloud-cli-kpt google-cloud-cli-local-extract google-cloud-cli-gke-gcloud-auth-plugin kubectl' \
gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud version
# For iterative run
$ docker run -e APT_PACKAGES='curl python3-crcmod apt-transport-https lsb-release openssh-client git make gnupg' \
-e COMPONENTS='google-cloud-cli-datastore-emulator google-cloud-cli-pubsub-emulator google-cloud-cli-bigtable-emulator google-cloud-cli-firestore-emulator google-cloud-cli-spanner-emulator google-cloud-cli-cbt google-cloud-cli-kpt google-cloud-cli-local-extract google-cloud-cli-gke-gcloud-auth-plugin kubectl' \
-it gcr.io/google.com/cloudsdktool/google-cloud-cli:stable bash
您可以运行以下命令来扩展 :stable
Docker 映像
在运行时启动 :emulators
Docker 映像:
# Running as emulators
$ docker run -e APT_PACKAGES='curl python3-crcmod lsb-release gnupg bash' \
-e COMPONENTS='google-cloud-cli-datastore-emulator google-cloud-cli-pubsub-emulator google-cloud-cli-bigtable-emulator google-cloud-cli-firestore-emulator google-cloud-cli-spanner-emulator' \
gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud version
# For iterative run
$ docker run -e APT_PACKAGES='curl python3-crcmod lsb-release gnupg bash' \
-e COMPONENTS='google-cloud-cli-datastore-emulator google-cloud-cli-pubsub-emulator google-cloud-cli-bigtable-emulator google-cloud-cli-firestore-emulator google-cloud-cli-spanner-emulator' \
-it gcr.io/google.com/cloudsdktool/google-cloud-cli:stable bash
您可以通过以下命令将 :stable
Docker 映像扩展为 :slim
Docker 映像:
运行以下 docker run
命令:
# Running as slim
$ docker run -e APT_PACKAGES='curl gcc python3-crcmod python3-pip apt-transport-https lsb-release openssh-client git gnupg' \
gcr.io/google.com/cloudsdktool/google-cloud-cli:stable gcloud version
# For iterative run
$ docker run -e APT_PACKAGES='curl gcc python3-crcmod python3-pip apt-transport-https lsb-release openssh-client git gnupg' \
-it gcr.io/google.com/cloudsdktool/google-cloud-cli:stable bash
通过构建自己的 Dockerfile 扩展 :stable
基础映像
您可以通过以下方式扩展 :stable
Docker 映像:使用 :stable
映像作为基础映像创建自己的 Dockerfile,然后使用 docker build
命令构建 Docker 映像。
如需将 :stable
图片转换为 :latest
图片,请执行以下操作:
通过安装必需的命令,从
:stable
创建您自己的 Dockerfile 组件和软件包:FROM docker:27.1.1 as static-docker-source FROM gcr.io/google.com/cloudsdktool/google-cloud-cli:stable COPY --from=static-docker-source /usr/local/bin/docker /usr/local/bin/docker COPY --from=static-docker-source /usr/local/libexec/docker/cli-plugins/docker-buildx /usr/local/libexec/docker/cli-plugins/docker-buildx RUN apt-get update -qqy && apt-get -qqy upgrade && apt-get install -qqy \ curl \ python3-crcmod \ apt-transport-https \ lsb-release \ openssh-client \ git \ make \ gnupg && \ export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)" && \ export CLOUD_SDK_VERSION=$(gcloud version | grep "Google Cloud SDK" | grep -oE '[^ ]+$') && \ echo "deb https://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" > /etc/apt/sources.list.d/google-cloud-sdk.list && \ curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - && \ apt-get update && \ apt-get install -y google-cloud-cli-datastore-emulator=${CLOUD_SDK_VERSION}-0 \ google-cloud-cli-pubsub-emulator=${CLOUD_SDK_VERSION}-0 \ google-cloud-cli-bigtable-emulator=${CLOUD_SDK_VERSION}-0 \ google-cloud-cli-firestore-emulator=${CLOUD_SDK_VERSION}-0 \ google-cloud-cli-spanner-emulator=${CLOUD_SDK_VERSION}-0 \ google-cloud-cli-cbt=${CLOUD_SDK_VERSION}-0 \ google-cloud-cli-kpt=${CLOUD_SDK_VERSION}-0 \ google-cloud-cli-local-extract=${CLOUD_SDK_VERSION}-0 \ google-cloud-cli-gke-gcloud-auth-plugin=${CLOUD_SDK_VERSION}-0 \ kubectl
构建 Dockerfile 以获取自己的
:latest
Docker 映像:$ docker build -t my-cloud-sdk-docker:latest .
如需将 :stable
图片转换为 :emulators
图片,请执行以下操作:
使用所需的组件和软件包创建 Dockerfile,如下所示:
FROM gcr.io/google.com/cloudsdktool/google-cloud-cli:stable RUN apt-get update -qqy && apt-get -qqy upgrade && apt-get install -qqy \ curl \ python3-crcmod \ lsb-release \ gnupg \ bash && \ export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)" && \ export CLOUD_SDK_VERSION=$(gcloud version | grep "Google Cloud SDK" | grep -oE '[^ ]+$') && \ echo "deb https://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" > /etc/apt/sources.list.d/google-cloud-sdk.list && \ curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - && \ apt-get update && \ apt-get install -y google-cloud-cli-datastore-emulator=${CLOUD_SDK_VERSION}-0 \ google-cloud-cli-pubsub-emulator=${CLOUD_SDK_VERSION}-0 \ google-cloud-cli-bigtable-emulator=${CLOUD_SDK_VERSION}-0 \ google-cloud-cli-firestore-emulator=${CLOUD_SDK_VERSION}-0 \ google-cloud-cli-spanner-emulator=${CLOUD_SDK_VERSION}-0
运行以下命令构建 Dockerfile:
$ docker build -t my-cloud-sdk-docker:emulators .
如需将 :stable
图片转换为 :slim
图片,请执行以下操作:
使用
:stable
作为基础映像创建 Dockerfile:FROM docker:27.1.1 as static-docker-source FROM gcr.io/google.com/cloudsdktool/google-cloud-cli:stable COPY --from=static-docker-source /usr/local/bin/docker /usr/local/bin/docker COPY --from=static-docker-source /usr/local/libexec/docker/cli-plugins/docker-buildx /usr/local/libexec/docker/cli-plugins/docker-buildx RUN apt-get update -qqy && apt-get -qqy upgrade && apt-get install -qqy \ curl \ python3-crcmod \ apt-transport-https \ lsb-release \ openssh-client \ git \ make \ gnupg
运行以下命令来构建 Dockerfile:
$ docker build -t my-cloud-sdk-docker:slim .