go程序如何打包成鏡像,以及docker,k8s運行鏡像方式


自從docker ,k8s興起之后,將程序打包成鏡像運行方式也是各類語言的一個趨勢,也是拓展語言寬度和親和度的綜合體現,本文主要描述如何將go語言編寫的程序打包成鏡像,並用docker和k8s運行起來,默認服務器已經安裝好了docker 和 k8s

一. 鏡像制作

1. 編譯go程序 生成二進制文件  (注意編譯方式 go env -w CGO_ENABLED=0)
比如生成一個helloworld二進制 tufei1

2. 本地新建一個dockerfile
FROM alpine:latest
#FROM golang:alpine
COPY tufei1 /app/
#ENTRYPOINT [ "/user-srv" ]
WORKDIR /app/
#run ["pwd"]
#CMD ["./httpServer"]
ENTRYPOINT ["./tufei1"]
EXPOSE 80


3.編譯dockerfile 生成鏡像 (注意語句最后面的 . 號)
docker build -t test:0.0.1 .

4. 通過docker images 可以查詢到生成的鏡像test:0.0.1

 

 

二. docker 運行鏡像

docker run -p 9112:9111 test:0.0.1

 

三. k8s運行鏡像

當前是在test命名空間下創建的pod,如果namespace找不到,可以提前創建號test的命名空間

1. 創建pod

kubectl create -f pod.yaml

//pod.yaml可以按照這個格式書寫

apiVersion: v1

kind: Pod

metadata:

name: testpod

namespace: test

labels:

app: testpod

spec:

containers:

- name: testpod

image: test:0.0.1

ports:

- containerPort: 80 --容器端口

hostPort: 80 --暴露端口

2.查詢容器運行情況

kubectl get pods -n test

參考資料:

pod官網資料:https://kubernetes.io/zh/docs/concepts/workloads/pods/

docker安裝參考:https://wiki.gulucat.com/doku.php/public/linux/new_install#%E4%BA%94_docker_%E7%8E%AF%E5%A2%83

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM