自從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
