go应用 docker部署
1.创建hello.go
//hello.go
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello, World!")
}
2.设置go编译的环境
GOOS=linux //编译到linux
GOARCH=amd64 //64位,如果镜像系统是32位,则GOARCH=386
go build
3.编写Dockerfile
方法一:这样出来的镜像文件较大。
FROM golang
COPY ./hello /tmp/hello
WORKDIR /tmp/
RUN chmod +x hello
方法二:最小化构建(推荐)
FROM alpine
COPY ./hello /tmp/hello
WORKDIR /tmp/hello
RUN chmod +x hello
ENTRYPOINT ["./hello"]
4.构建镜像
docker build -t hello-image .
docker images //查看镜像
5.运行容器
docker run hello-image ./hello
6.Q:我们需要将 Golang 容器和 Mysql 容器关联起来,那么我们需要怎么做呢?
A:增加命令 --link mysql:mysql 让 Golang 容器与 Mysql 容器互联;通过 --link,可以在容器内直接使用其关联的容器别名进行访问,而不通过IP,但是--link只能解决单机容器间的关联,在分布式多机的情况下,需要通过别的方式进行连接