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