(資料圖)
Docker定義
Docker 是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的鏡像中,然后發(fā)布到任何流行的 Linux或Windows操作系統(tǒng)的機(jī)器上,也可以實(shí)現(xiàn)虛擬化。容器是完全使用沙箱機(jī)制,相互之間不會有任何接口。
本文我們介紹怎么使用 Docker 部署 Go 項(xiàng)目。閱讀本文,需要讀者朋友們了解 Docker 的基本操作。
go項(xiàng)目的開發(fā)
首先,我們開發(fā)一個簡單的 Go Web 項(xiàng)目,使用 Go 內(nèi)置命令行工具go build編譯生成可執(zhí)行文件./hello。這是項(xiàng)目結(jié)構(gòu)。
.├── Dockerfile├── go.mod├── hello├── main.go└── service.log我們使用 Go 標(biāo)準(zhǔn)庫編寫一個 Web 項(xiàng)目,運(yùn)行編譯生成的可執(zhí)行程序,訪問http://127.0.0.1:8080/hello,輸出hello word。
curl http://127.0.0.1:8080/hello# 輸出hello worldDocker的使用
我們開始編寫Dockerfile文件,使該項(xiàng)目可以支持使用 Docker 部署。
Dockerfile 文件:
# 基礎(chǔ)鏡像FROM alpine:3.12# 維護(hù)者M(jìn)AINTAINER frank# docker build 時執(zhí)行命令 - 創(chuàng)建目錄RUN mkdir -p "/data/app" \&& ln -sf /dev/stdout /data/app/service.log# 工作目錄WORKDIR "/data/app"# 拷貝COPY hello /data/app/hello# docker run 時執(zhí)行命令ENTRYPOINT ["./hello"]在編寫完 Dockerfile 文件之后,我們可以使用 docker 命令構(gòu)建鏡像,前提是我們本機(jī)已安裝 Docker。
docker build -t hello:v1.0.0 .運(yùn)行以上構(gòu)建 Docker 鏡像的命令之后,我們就已成功構(gòu)建 Docker 鏡像。
關(guān)鍵詞:



















