go制作dockerfile,并部署到docker

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 "[email protected]"
## 在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...

你可能感兴趣的:(golang)