(资料图片)
Docker定义
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
本文我们介绍怎么使用 Docker 部署 Go 项目。阅读本文,需要读者朋友们了解 Docker 的基本操作。
go项目的开发
首先,我们开发一个简单的 Go Web 项目,使用 Go 内置命令行工具go build
编译生成可执行文件./hello
。这是项目结构。
.├── Dockerfile├── go.mod├── hello├── main.go└── service.log
我们使用 Go 标准库编写一个 Web 项目,运行编译生成的可执行程序,访问http://127.0.0.1:8080/hello
,输出hello word
。
curl http://127.0.0.1:8080/hello# 输出hello world
Docker的使用
我们开始编写Dockerfile
文件,使该项目可以支持使用 Docker 部署。
Dockerfile 文件:
# 基础镜像FROM alpine:3.12# 维护者MAINTAINER frank# docker build 时执行命令 - 创建目录RUN mkdir -p "/data/app" \&& ln -sf /dev/stdout /data/app/service.log# 工作目录WORKDIR "/data/app"# 拷贝COPY hello /data/app/hello# docker run 时执行命令ENTRYPOINT ["./hello"]
在编写完 Dockerfile 文件之后,我们可以使用 docker 命令构建镜像,前提是我们本机已安装 Docker。
docker build -t hello:v1.0.0 .
运行以上构建 Docker 镜像的命令之后,我们就已成功构建 Docker 镜像。