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只能解決單機容器間的關聯,在分布式多機的情況下,需要通過別的方式進行連接