一、服务器docker开启远程访问
vi /usr/lib/systemd/system/docker.service
在ExecStart这一行后添加 -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
,如下图
重启docker
systemctl daemon-reload
systemctl restart docker
确保服务器安全组开放2375端口
注意:直接开放2375端口意味着其他任何人也可以直接操作服务器,这里仅做测试用,正式服务器要加秘钥验证
二、安装Docker插件&配置Docker服务器
1.打开File -> Settings -> Plugins 安装Docker插件
2.打开File -> Settings -> Build,Execution... 按如下截图添加Docker配置好IP+端口后会自动连接,出现connection successful说明连接成功
3.连接成功后会在IDE左下角出现Docker窗口,点击左侧绿色Connect后可以直接连接服务器,并且可以查看服务器上的镜像和容器等。
三、创建项目和配置
1.点击File -> New -> Project 创建一个新项目,然后创建main.go 实现一个简单web版的helloworld
package main
import (
"fmt"
"net/http"
)
func sayHello(w http.ResponseWriter, r *http.Request){
fmt.Fprintf(w, "hello world!")
}
func main() {
http.HandleFunc("/", sayHello)
http.ListenAndServe(":9090", nil)
}
2.创建一个基于scratch的最小Dockerfile文件,放在build目录下
FROM scratch
MAINTAINER zhangsan "zhangsan@qq.com"
#添加运行程序
ADD hello /hello
CMD ["./hello"]
四、配置交叉编译
环境变量改为CGO_ENABLED=0;GOARCH=amd64;GOOS=linux
,参数改为-o ./build/hello
如下图
意思是发布成liunx文件,并放到build目录下的,名字为hello
选中配置点击右上角的绿色按钮,生成后的效果图如下
五、配置Docker编译
下面是Run Option的一些参数,可以自行增减docker run配置
--restart=always --env GO_ENV=prod --env GO_APP_PORT=9090 --expose 9090 -d -p 9090:9090
五、发布Docker
直接点运行按钮就行了会自动做很多动作。1、自动连Docker服务器 2、编译golang的liunx文件 3、docker build & docker run
在服务器上分别用docker images
和 docker ps -a
查看运行情况,或者直接http访问发布的程序端口测试
测试成功!!
如果改了image tag发现没用的话,把docker停一下再连接试试,一般就可以了