最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

k8s手動(dòng)拉取docker鏡像的方法示例

 更新時(shí)間:2024年02月02日 11:20:06   作者:WiFi大拿  
docker是一種便捷的容器化解決方案,它可以通過拉取鏡像的方式輕松地部署和管理應(yīng)用程序,本文主要介紹了k8s手動(dòng)拉取docker鏡像的方法示例,感興趣的可以了解一下

首先我們需要安裝 docker 來打包鏡像,如果你本地已經(jīng)安裝了 docker

推薦安裝方法

目前使用 Docker Desktop 來安裝 docker 還是最簡單的方案,打開官網(wǎng)下載對應(yīng)你電腦操作系統(tǒng)的包即可

k8s 怎么手動(dòng)拉取docker鏡像_docker

當(dāng)安裝完成后,可以通過 docker run hello-world 來快速校驗(yàn)是否安裝成功!

安裝 minikube

我們還需要搭建一套 k8s 本地集群 (使用云廠商或者其它 k8s 集群都可) 。本地搭建 k8s 集群的方式推薦使用 minikube。

可以根據(jù) minikube 快速安裝 來進(jìn)行下載安裝,這里簡單列舉 MacOS 的安裝方式,Linux & Windows 操作系統(tǒng)可以參考官方文檔 快速安裝。

brew install minikube

啟動(dòng) minikube

因?yàn)?minikube 支持很多容器和虛擬化技術(shù) (Docker, Hyperkit, Hyper-V, KVM, Parallels, Podman, VirtualBox, or VMware Fusion/Workstation),也是問題出現(xiàn)比較多的地方,所以這里還是稍微說明一下。

如果你使用 docker 的方案是上面推薦的 Docker Desktop ,那么你以下面的命令啟動(dòng) minikube 即可,需要耐心等待下載依賴。

minikube start --vm-driver docker --container-runtime=docker

啟動(dòng)完成后,運(yùn)行 minikube status 查看當(dāng)前狀態(tài)確定是否啟動(dòng)成功!

如果你本地只有 Docker CLI,判斷標(biāo)準(zhǔn)如果執(zhí)行 docker ps 等命令,返回錯(cuò)誤

 brew install hyperkit
minikube start --vm-driver hyperkit --container-runtime=docker

# Tell Docker CLI to talk to minikube's VM
eval $(minikube docker-env)

# Save IP to a hostname
echo "`minikube ip` docker.local" | sudo tee -a /etc/hosts > /dev/null

# Test
docker run hello-world

minikube 命令速查

minikube stop 不會(huì)刪除任何數(shù)據(jù),只是停止 VM 和 k8s 集群。

minikube delete 刪除所有 minikube 啟動(dòng)后的數(shù)據(jù)。

minikube ip 查看集群和 docker enginer 運(yùn)行的 IP 地址。

minikube pause 暫停當(dāng)前的資源和 k8s 集群

minikube status 查看當(dāng)前集群狀態(tài)

安裝 kubectl

這一步是可選的,如果不安裝的話,后續(xù)所有 kubectl 相關(guān)的命令,使用 minikube kubectl 命令替代即可。

如果你不想使用 minikube kubectl 或者配置相關(guān)環(huán)境變量來進(jìn)行下面的教學(xué)的話,可以考慮直接安裝 kubectl。

brew install kubectl

注冊 docker hub 賬號(hào)登錄

因?yàn)槟J(rèn) minikube 使用的鏡像地址是 DockerHub,所以我們還需要在 DockerHub 賬號(hào),并且使用 login 命令登錄賬號(hào)。

docker login

k8s 怎么手動(dòng)拉取docker鏡像_docker_02

Container

我們的旅程從一段代碼開始。新建一個(gè) main.go 文件,復(fù)制下面的代碼到文件中。

package main

import (
	"io"
	"net/http"
)

func hello(w http.ResponseWriter, r *http.Request) {
	io.WriteString(w, "[v1] Hello, Kubernetes!")
}

func main() {
	http.HandleFunc("/", hello)
	http.ListenAndServe(":3000", nil)
}

上面是一串用 Go 寫的代碼,代碼邏輯非常的簡單,首先啟動(dòng) HTTP 服務(wù)器,監(jiān)聽 3000 端口,當(dāng)訪問路由 /的時(shí)候 返回字符串 [v1] Hello, Kubernetes!。

在以前,如果你想將這段代碼運(yùn)行起來并測試一下。你首先需要懂得如何下載 golang 的安裝包進(jìn)行安裝,接著需要懂得 golang module 的基本使用,最后還需要了解 golang 的編譯和運(yùn)行命令,才能將該代碼運(yùn)行起來。甚至在過程中,可能會(huì)因?yàn)榄h(huán)境變量問題、操作系統(tǒng)問題、處理器架構(gòu)等問題導(dǎo)致編譯或運(yùn)行失敗。

但是通過 Container (容器) 技術(shù),只需要上面的代碼,附帶著對應(yīng)的容器 Dockerfile 文件,那么你就不需要 golang 的任何知識(shí),也能將代碼順利運(yùn)行起來。

Container (容器) 是一種沙盒技術(shù)。它是基于 Linux 中 Namespace / Cgroups / chroot 等技術(shù)組合而成,更多技術(shù)細(xì)節(jié)可以參照這個(gè)視頻 如何自己實(shí)現(xiàn)一個(gè)容器。

下面就是 Go 代碼對應(yīng)的 Dockerfile,簡單的方案是直接使用 golang 的 alpine 鏡像來打包,但是因?yàn)槲覀兒罄m(xù)練習(xí)需要頻繁的推送鏡像到 DockerHub 和拉取鏡像到 k8s 集群中,為了優(yōu)化網(wǎng)絡(luò)速度,我們選擇先在 golang:1.16-buster 中將上述 Go 代碼編譯成二進(jìn)制文件,再將二進(jìn)制文件復(fù)制到 base-debian10 鏡像中運(yùn)行 (Dockerfile 不理解沒有關(guān)系,不影響后續(xù)學(xué)習(xí))。

這樣我們可以將 300MB 大小的鏡像變成只有 20MB 的鏡像,甚至壓縮上傳到 DockerHub 后大小只有 10MB!

# Dockerfile
FROM golang:1.16-buster AS builder
RUN mkdir /src
ADD . /src
WORKDIR /src

RUN go env -w GO111MODULE=auto
RUN go build -o main .

FROM gcr.io/distroless/base-debian10

WORKDIR /

COPY --from=builder /src/main /main
EXPOSE 3000
ENTRYPOINT ["/main"]

需要注意 main.go 文件需要和 Dockerfile 文件在同一個(gè)目錄下,執(zhí)行下方 docker build 命令,第一次需要耐心等待拉取基礎(chǔ)鏡像。并且需要注意將命令中 guangzhengli 替換成自己的 DockerHub 注冊的賬號(hào)名稱。 這樣我們后續(xù)可以推送鏡像到自己注冊的 DockerHub 倉庫當(dāng)中。

docker build . -t guangzhengli/hellok8s:v1
# Step 1/11 : FROM golang:1.16-buster AS builder
# ...
# ...
# Step 11/11 : ENTRYPOINT ["/main"]
# Successfully tagged guangzhengli/hellok8s:v1


docker images
# guangzhengli/hellok8s          v1         f956e8cf7d18   8 days ago      25.4MB

docker build 命令完成后我們可以通過 docker images 命令查看鏡像是否 build 成功,最后我們執(zhí)行 docker run 命令將容器啟動(dòng), -p 指定 3000 作為端口,-d 指定容器后臺(tái)運(yùn)行。

docker run -p 3000:3000 --name hellok8s -d guangzhengli/hellok8s:v1

運(yùn)行成功后,可以通過瀏覽器或者 curl 來訪問 http://127.0.0.1:3000 , 查看是否成功返回字符串 [v1] Hello, Kubernetes!。

這里因?yàn)槲冶镜刂挥?Docker CLI,而 docker runtime 是使用 minikube,所以我需要先調(diào)用 minikube ip 來返回 minikube IP 地址,例如返回了 192.168.59.100,所以我需要訪問 http://192.168.59.100:3000 來判斷是否成功返回字符串 [v1] Hello, Kubernetes!。

最后確認(rèn)沒有問題,使用 docker push 將鏡像上傳到遠(yuǎn)程的 DockerHub 倉庫當(dāng)中,這樣可以供他人下載使用,也方便后續(xù) Minikube 下載鏡像使用。 需要注意將 guangzhengli 替換成自己的 DockerHub 賬號(hào)名稱。

docker push guangzhengli/hellok8s:v1

經(jīng)過這一節(jié)的練習(xí),有沒有對容器的強(qiáng)大有一個(gè)初步的認(rèn)識(shí)呢?可以想象當(dāng)你想部署一個(gè)更復(fù)雜的服務(wù)時(shí),例如 Nginx,MySQL,Redis。你只需要到 DockerHub 搜索 中搜索對應(yīng)的鏡像,通過 docker pull 下載鏡像,docker run 啟動(dòng)服務(wù)即可!而無需關(guān)心依賴和各種配置

到此這篇關(guān)于k8s手動(dòng)拉取docker鏡像的方法示例的文章就介紹到這了,更多相關(guān)k8s手動(dòng)拉取docker鏡像內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker與DevOps的結(jié)合使用

    Docker與DevOps的結(jié)合使用

    結(jié)合Docker和DevOps文化的實(shí)踐,可以幫助團(tuán)隊(duì)實(shí)現(xiàn)自動(dòng)化、監(jiān)控和日志管理等方面的最佳實(shí)踐,本文將介紹如何將Docker與DevOps文化相結(jié)合使用,并詳細(xì)闡述如何使用Docker進(jìn)行DevOps自動(dòng)化、監(jiān)控和日志管理等方面的實(shí)踐,需要的朋友參考下吧
    2023-08-08
  • 教你docker方式部署nacos

    教你docker方式部署nacos

    Nacos?提供了一組簡單易用的特性集,幫助您快速實(shí)現(xiàn)動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、服務(wù)配置、服務(wù)元數(shù)據(jù)及流量管理,下面通過本文給大家講解docker方式部署nacos的過程,感興趣的朋友一起看看吧
    2022-05-05
  • Docker安裝、創(chuàng)建鏡像、加載并運(yùn)行NodeJS程序的詳細(xì)過程

    Docker安裝、創(chuàng)建鏡像、加載并運(yùn)行NodeJS程序的詳細(xì)過程

    本文給大家介紹Docker安裝、創(chuàng)建鏡像、加載并運(yùn)行NodeJS程序的相關(guān)知識(shí),通過示例給大家詳細(xì)介紹創(chuàng)建一個(gè)nodejs程序的docker鏡像的方法,需要的朋友跟隨小編一起看看吧
    2021-06-06
  • 基于docker搭建nginx文件服務(wù)器的方法步驟

    基于docker搭建nginx文件服務(wù)器的方法步驟

    這篇文章主要介紹了基于docker搭建nginx文件服務(wù)器的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • docker容器如何配置hosts文件問題

    docker容器如何配置hosts文件問題

    這篇文章主要介紹了docker容器如何配置hosts文件問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 關(guān)于如何使用docker部署centos系統(tǒng)測試環(huán)境

    關(guān)于如何使用docker部署centos系統(tǒng)測試環(huán)境

    這篇文章主要介紹了關(guān)于如何使用docker部署centos系統(tǒng)測試環(huán)境,Docker屬于操作系統(tǒng)虛擬化技術(shù),本文圖文講解部署過程,需要的朋友可以參考下
    2023-03-03
  • 搭建Docker私有倉庫(自簽名方式)

    搭建Docker私有倉庫(自簽名方式)

    為了能集中管理我們創(chuàng)建好的鏡像,方便部署服務(wù),我們會(huì)創(chuàng)建私有的Docker倉庫。這篇文章主要介紹了搭建Docker私有倉庫(自簽名方式),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • docker容器存放目錄磁盤空間滿了的解決

    docker容器存放目錄磁盤空間滿了的解決

    這篇文章主要介紹了docker容器存放目錄磁盤空間滿了的解決,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • docker自建rustdesk-server遠(yuǎn)程桌面的解決方案

    docker自建rustdesk-server遠(yuǎn)程桌面的解決方案

    RustDesk 是一款可以平替 TeamViewer 的開源軟件,旨在提供安全便捷的自建方案,這篇文章主要介紹了docker自建rustdesk-server遠(yuǎn)程桌面的解決方案,需要的朋友可以參考下
    2024-07-07
  • 前端項(xiàng)目容器化Docker打包部署方式詳解

    前端項(xiàng)目容器化Docker打包部署方式詳解

    這篇文章主要為大家介紹了前端項(xiàng)目容器化Docker打包部署方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11

最新評論

甘孜县| 常德市| 惠东县| 东平县| 本溪| 惠州市| 大埔区| 延寿县| 雷州市| 桂平市| 合川市| 凤冈县| 张北县| 沂南县| 东阳市| 石棉县| 大姚县| 大埔县| 东山县| 松溪县| 垣曲县| 伊宁县| 汕头市| 井研县| 海城市| 永仁县| 水富县| 南乐县| 芜湖市| 双鸭山市| 明溪县| 金坛市| 灵山县| 双鸭山市| 旬邑县| 阳东县| 泰来县| 襄垣县| 宁乡县| 和政县| 彭泽县|