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

k8s手動拉取docker鏡像的方法示例

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

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

推薦安裝方法

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

k8s 怎么手動拉取docker鏡像_docker

當安裝完成后,可以通過 docker run hello-world 來快速校驗是否安裝成功!

安裝 minikube

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

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

brew install minikube

啟動 minikube

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

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

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

啟動完成后,運行 minikube status 查看當前狀態(tài)確定是否啟動成功!

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

 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 不會刪除任何數(shù)據(jù),只是停止 VM 和 k8s 集群。

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

minikube ip 查看集群和 docker enginer 運行的 IP 地址。

minikube pause 暫停當前的資源和 k8s 集群

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

安裝 kubectl

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

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

brew install kubectl

注冊 docker hub 賬號登錄

因為默認 minikube 使用的鏡像地址是 DockerHub,所以我們還需要在 DockerHub 賬號,并且使用 login 命令登錄賬號。

docker login

k8s 怎么手動拉取docker鏡像_docker_02

Container

我們的旅程從一段代碼開始。新建一個 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 寫的代碼,代碼邏輯非常的簡單,首先啟動 HTTP 服務(wù)器,監(jiān)聽 3000 端口,當訪問路由 /的時候 返回字符串 [v1] Hello, Kubernetes!。

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

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

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

下面就是 Go 代碼對應(yīng)的 Dockerfile,簡單的方案是直接使用 golang 的 alpine 鏡像來打包,但是因為我們后續(xù)練習(xí)需要頻繁的推送鏡像到 DockerHub 和拉取鏡像到 k8s 集群中,為了優(yōu)化網(wǎng)絡(luò)速度,我們選擇先在 golang:1.16-buster 中將上述 Go 代碼編譯成二進制文件,再將二進制文件復(fù)制到 base-debian10 鏡像中運行 (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 文件在同一個目錄下,執(zhí)行下方 docker build 命令,第一次需要耐心等待拉取基礎(chǔ)鏡像。并且需要注意將命令中 guangzhengli 替換成自己的 DockerHub 注冊的賬號名稱。 這樣我們后續(xù)可以推送鏡像到自己注冊的 DockerHub 倉庫當中。

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 命令將容器啟動, -p 指定 3000 作為端口,-d 指定容器后臺運行。

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

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

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

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

docker push guangzhengli/hellok8s:v1

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

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

相關(guān)文章

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

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

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

    教你docker方式部署nacos

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

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

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

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

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

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

    這篇文章主要介紹了docker容器如何配置hosts文件問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    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ù),我們會創(chuàng)建私有的Docker倉庫。這篇文章主要介紹了搭建Docker私有倉庫(自簽名方式),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • docker容器存放目錄磁盤空間滿了的解決

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

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

    docker自建rustdesk-server遠程桌面的解決方案

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

    前端項目容器化Docker打包部署方式詳解

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

最新評論

理塘县| 长沙县| 黄石市| 宁都县| 兴仁县| 东阿县| 迁安市| 光山县| 鄂伦春自治旗| 江达县| 老河口市| 呼和浩特市| 马尔康县| 新兴县| 石柱| 黔西县| 门头沟区| 余姚市| 临安市| 大余县| 黑水县| 庆城县| 共和县| 东阿县| 菏泽市| 顺平县| 吴忠市| 饶阳县| 集贤县| 阳新县| 滦平县| 河东区| 莱西市| 龙川县| 大同市| 鄂托克旗| 舟山市| 泾川县| 恭城| 凉城县| 桦南县|