主要參考:docker部署golang web服務
一、Dockerfile
原文沒有涉及需要額外包的情況。當需要額外包的時候,由於已經被牆,所以需要設置代理。
FROM golang:1.15.4
MAINTAINER "leimu"
WORKDIR /usr/search
RUN go env -w GO111MODULE=on
RUN go env -w GOPROXY=https://goproxy.cn,direct
ADD . /usr/search
RUN go mod init search
RUN go build main.go
EXPOSE 8080
ENTRYPOINT ["./main"]
使用go mod
模式來處理包的依賴。
二、啟動
1、制作docker鏡像
docker build -t search .
docker build 構建鏡像
search 鏡像名字為search
. (點號) dockerfile目錄為當前目錄
2、查看鏡像
docker images search
3、運行docker容器
docker run -p 18080:8080 -d search
docker run 運行docker鏡像
-p 18080:8080 將宿主機(也就是本機)的18080端口映射到容器的8080端口,此處需要先確認本機的18080端口並未被占用,容器的8080端口是否在監聽。
通過lsof -i:18080
查看占用該端口的進程
search 鏡像名(也可以是鏡像id)
-d 后台運行
4、查看容器運行情況
1、docker查看容器
docker ps -a
2、測試容器服務
curl http://localhost:18080/
3、如果啟動失敗,查看日志