Docker 構建 kubectl 映象
假如程式服務是使用 k8s 整合 gitlab ci/cd 方式部署的,在 gitlab-ci 過程中就需要用到 kubeclt 映象
使用 docker 構建 kubectl 映象有兩種方式
方式一 (映象相對較小一點,45.8M左右)
在 Linux 上使用 curl 安裝 kubectl 可執行檔案
cd /usr/local/bin
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.20.1/bin/linux/amd64/kubectl
chmod +x ./kubectl
詳細參考 官方安裝文件
接下來在 /usr/local/bin 目錄下新建 Dockerfile 檔案,寫入內容如下
FROM alpine:latest
COPY kubectl /usr/local/bin/
RUN chmod +x /usr/local/bin/kubectl
Dockerfile 檔案建好後,在同目錄下執行構建命令
docker build -t registry.cn-hangzhou.aliyuncs.com/sanchar/kubectl:v1.20.1 .
等待映象構建完成
方式二(映象相對大一些,48.9M左右)
此方式相對方便一些,不過構建比較慢,構建過程中需要下載 kubectl 可執行檔案
直接新建 Dockerfile 檔案,寫入內容如下
FROM alpine:latest
RUN apk add --update -t deps curl
RUN curl -L https://storage.googleapis.com/kubernetes-release/release/v1.20.1/bin/linux/amd64/kubectl -o /usr/local/bin/kubectl \
&& chmod +x /usr/local/bin/kubectl
RUN apk del --purge deps \
&& rm /var/cache/apk/*
在同目錄下執行構建命令
docker build -t registry.cn-hangzhou.aliyuncs.com/sanchar/kubectl:v1.20.1 .
最後
1、測試構建的映象是否可以正常使用
docker run -it registry.cn-hangzhou.aliyuncs.com/sanchar/kubectl:v1.20.1 kubectl version --client
輸出內容如下即構建的映象可以正常使用
Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.1", GitCommit:"c4d752765b3bbac2237bf87cf0b1c2e307844666", GitTreeState:"clean", BuildDate:"2020-12-18T12:09:25Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"linux/amd64"}
2、從Registry中拉取映象
docker pull registry.cn-hangzhou.aliyuncs.com/sanchar/kubectl:v1.20.1
3、將映象推送到Registry,[ImageId] 替換成對應的映象ID
docker login --username=使用者名稱 registry.cn-hangzhou.aliyuncs.com
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/sanchar/kubectl:v1.20.1
docker push registry.cn-hangzhou.aliyuncs.com/sanchar/kubectl:v1.20.1
相關文章
- docker構建映象Docker
- Docker映象構建(五)Docker
- Docker映象構建原理解析(不裝docker也能構建映象)Docker
- 用dockerfile構建docker映象Docker
- Docker 映象構建之 DockerfileDocker
- docker 構建自己的映象Docker
- Docker 構建PHP 映象環境DockerPHP
- Docker 分階段構建映象Docker
- Docker 映象分階段構建Docker
- Docker構建多平臺映象Docker
- Docker 構建多平臺映象Docker
- 不用安裝docker也能構建docker映象Docker
- docker之手動構建新的映象Docker
- 使用maven外掛構建docker映象MavenDocker
- 構建 Docker 映象的 N 個小技巧Docker
- Docker容器學習梳理 - Dockerfile構建映象Docker
- Docker從零構建php-nginx-alpine映象DockerPHPNginx
- apisix閘道器-構建docker映象構建及外掛化開發APIDocker
- 使用 Docker 開發 - 使用多階段構建映象Docker
- Docker容器 關於映象構建的安全問題Docker
- 使用Docker buildx 為 .NET 構建多平臺映象DockerUI
- 使用docker構建jenkins映象並執行容器DockerJenkins
- 源設定導致Docker映象構建失敗Docker
- docker:映象構建、倉庫、壓縮、匯入 二Docker
- docker映象構建libreoffice轉換檔案Docker
- SpringBoot 構建 Docker 映象的最佳 3 種方式Spring BootDocker
- Docker Buildx使用教程:使用Buildx構建多平臺映象DockerUI
- 構建 Go 應用 docker 映象的十八種姿勢GoDocker
- Docker映象構建:技術深度解析與實踐指南Docker
- [Dockerfile構建映象]Docker
- DockerFile構建映象Docker
- Docker映象的構成__docker commitDockerMIT
- Docker學習筆記(三):Dockerfile及多步驟構建映象Docker筆記
- 怎樣去構建一個優質的Docker容器映象Docker
- Docker映象的構建以及資料卷和埠對映Docker
- Jenkins中構建(Build)Docker映象時出現permission deniedJenkinsUIDocker
- 基於ubuntu映象構建redis映象UbuntuRedis
- Docker映象的構成__DockerfileDocker