关于golang:go制作dockerfile并部署到docker

16次阅读

共计 1828 个字符,预计需要花费 5 分钟才能阅读完成。

go 代码文件:

package main

import (
    "github.com/gin-gonic/gin"
    "log"
    "net/http"
)

func main() {r := gin.Default()
    r.GET("/", handlerindex)
    r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
}

func handlerindex(ctx *gin.Context) {log.Println("hello world handlerindex")
    ctx.JSON(http.StatusOK, `handlerindex`)
}

Dockerfile 文件:

# 源镜像
FROM golang:latest
#作者
MAINTAINER Razil "test2022@163.com"
## 在 docker 的根目录下创立相应的应用目录
RUN mkdir -p /www/webapp
## 设置工作目录
WORKDIR /www/webapp
## 把以后(宿主机上)目录下的文件都复制到 docker 上刚创立的目录下
COPY . /www/webapp
#将服务器的 go 工程代码退出到 docker 容器中
#ADD . $GOPATH/src/github.com/mygohttp
#go 构建可执行文件
RUN go build main.go
#裸露端口
EXPOSE 8080

RUN chmod +x main
ENTRYPOINT ["./main"]

## 启动 docker 须要执行的文件
#CMD go run main.go
#最终运行 docker 的命令
#ENTRYPOINT  ["./mygohttp"]
1.dockerfile 制作
dockerfile 制作的源镜像咱们能够在 hub.docker.com 找到 golang 官网提供的源镜像, 咱们采纳 golang:latest。留神 dockerfile 文件名称必须是 Dockerfile,其文件必须再工程目录下。2. 执行 dockerfile,并生成 docker 镜像
在当前目录下,执行 docker build -t  mygohttp .
docker images

3.docker 运行 mygohttp
docker run --name mygohttp -p 8080:8080 -d mygohttp

此时便启动了 docker 容器。咱们能够在 http://127.0.0.1:8080/ 拜访该服务。或者
docker run -d --name golang -p 8080:8080 --net mynet --ip 172.172.0.10 -v /Volumes/work/www/Go/webapp/:/www/webapp goweb
## 这里创立的 docker 名字为“golan”名称应该写在 --name 之后;## 网络的设置,我应用了自定义的 docker 网络设置,见后面的几个对于 docker 的内容;## 创立共享目录,吧宿主机的“/Volumes/work/www/Go/webapp/”文件夹同步到到 docker 下的 /www/webapp,这个目录也就是咱们再创立镜像时候设置的工作目录
## 应用咱们刚刚创立的镜像 "goweb"
## 映射宿主机的 8080 端口到 docker 上的 8080 端口



###go 语言工程制作 yaml 文件,并部署到 kubernetes
1.1. 制作 yaml 文件
首先基于现有的 docker 镜像,制作出 deployment 和 service。2. 部署 mygohttp 服务
kubectl create -f kube-mygohttp.yaml

此时咱们能够通过 http://10.7.28.129:30836 拜访。通过 kubectl logs -f 实时查看日志。

罕用 docker 命令:

 查问容器:docker ps -a

删除容器
docker rm 6bf7c8fb514f
留神:rm 命令前面的是 containerID 依据各自状况变动


删除 images
docker image rm hello-world


进行服务
docker stop mygohttp
删除 container 实例
docker rm mygohttp
删除 container 镜像
docker rmi mygohttp

材料参考:
https://blog.csdn.net/niyueli…
https://blog.csdn.net/niyueli…

ubuntun 下装置 docker

https://www.jianshu.com/p/c27…

正文完
 0