前言:不想在windows上安装环境,打算docker部署,一拉一运行很方便,要注意的就是,官方的镜像跑起来后要改些参数再导成镜像(否则重启后改动消失),所以多一步。

1.拉取镜像 && 运行镜像

docker pull golang
docker run -it golang /bin/bash

2.进入容器修改配置文件

GOPATH:go工作目录,也是以后代码存放的地方
GOPROXY:go包下载代理地址,为了下载包快速所改
GO111MODULE:允许go mod 包管理工具的使用

go env #判断能否正常运行
#自定义设置
go env -w GO111MODULE=on #开启go mod
go env -w GOPROXY="https://goproxy.cn"
go env -w GOPATH="/go"  #如果本身就是,那就不需要再改了,可以省略

3.将容器导出为镜像 && 停用运行原容器

docker commit container_name golang-my #容器导出成镜像
docker stop container_name
docker rm container_name

4.运行刚导出的镜像

-p 端口映射
-v 目录映射,左侧为宿主机,右侧为容器内

docker run -itd -p 8081:8081 -v /home/www/golang:/go --name golang golang-my	

5.宿主机新建 /home/www/golang/main.go文件

package main
import (
"fmt"
)
func main() {
fmt.Println("Hello, world")
}

6.进入容器内 && 运行

docker exec -it golang-my /binbash #进入容器
cd /go #切换到工作目录
go run main.go # 运行

命令行输出Hello, world就ok了,第一次会慢,后面就好了。