主要参考: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、如果启动失败,查看日志