简介
Docker 彻底改变了开发者构建、打包和部署应用程序的方式。在本教程中,你将学习如何在 Docker 容器内运行 Go 程序,以确保有一个一致且可靠的执行环境。
Docker 彻底改变了开发者构建、打包和部署应用程序的方式。在本教程中,你将学习如何在 Docker 容器内运行 Go 程序,以确保有一个一致且可靠的执行环境。
Docker 是一个广受欢迎的容器化平台,它允许开发者将其应用程序及其所有依赖项打包成一个单一的、可移植的容器。然后,这个容器可以轻松地部署并在任何安装了 Docker 的系统上运行,而无需考虑底层操作系统或基础设施。
Docker 是一个开源软件平台,用于自动化软件容器内应用程序的部署、扩展和管理。容器是轻量级的、独立的、可执行的软件包,其中包含运行应用程序所需的一切,包括代码、运行时环境、系统工具和库。
Docker 为开发者和 IT 专业人员带来了诸多好处:
要开始使用 Docker,你需要在系统上安装 Docker 引擎。你可以从 Docker 官方网站(https://www.docker.com/get-started)下载并安装 Docker。安装完成后,你就可以开始创建和运行 Docker 容器了。
表 1:Docker CLI 命令
命令 | 描述 |
---|---|
docker build |
从 Dockerfile 创建一个 Docker 镜像 |
docker run |
运行一个 Docker 容器 |
docker ps |
列出正在运行的 Docker 容器 |
docker images |
列出 Docker 镜像 |
docker push |
将一个 Docker 镜像推送到镜像仓库 |
docker pull |
从镜像仓库拉取一个 Docker 镜像 |
既然你对 Docker 有了基本的了解,接下来让我们继续在 Docker 容器中构建一个 Go 应用程序。
让我们从创建一个简单的 Go 应用程序开始。创建一个名为 main.go
的新文件,并包含以下内容:
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, LabEx!")
})
fmt.Println("Starting server on :8080")
http.ListenAndServe(":8080", nil)
}
这个 Go 应用程序监听端口 8080,并在接收到对根 URL(/
)的请求时,返回消息“Hello, LabEx!”。
要在 Docker 容器中运行这个 Go 应用程序,我们需要创建一个 Docker 镜像。创建一个名为 Dockerfile
的新文件,并包含以下内容:
FROM golang:1.18-alpine
WORKDIR /app
COPY..
RUN go build -o main.
CMD ["./main"]
这个 Dockerfile:
golang:1.18-alpine
镜像作为基础镜像。/app
。main
的可执行文件。main
可执行文件的命令。要构建 Docker 镜像,在与 Dockerfile
相同的目录中运行以下命令:
docker build -t my-go-app.
此命令构建一个标签为 my-go-app
的 Docker 镜像。
你可以通过运行以下命令来列出系统上可用的 Docker 镜像:
docker images
你应该会在列表中看到 my-go-app
镜像。
既然我们已经为 Go 应用程序创建了一个 Docker 镜像,接下来让我们在 Docker 容器中运行它。
要在 Docker 容器中运行 Go 应用程序,请使用以下命令:
docker run -p 8080:8080 my-go-app
此命令:
my-go-app
Docker 镜像。你可以通过运行以下命令来列出正在运行的 Docker 容器:
docker ps
你应该会在列表中看到 my-go-app
容器。
要访问在 Docker 容器中运行的 Go 应用程序,打开一个网页浏览器并导航到 http://localhost:8080
。你应该会看到显示的消息“Hello, LabEx!”。
要停止正在运行的 Docker 容器,请使用以下命令:
docker stop <容器 ID>
将 <容器 ID>
替换为正在运行的容器的 ID,你可以通过运行 docker ps
命令找到该 ID。
在本教程中,你学习了如何:
通过使用 Docker 对 Go 应用程序进行容器化,你可以确保在不同环境中进行一致且可靠的部署,从而更轻松地开发、测试和部署你的应用程序。
在本教程结束时,你将对如何在 Docker 容器中构建并运行 Go 应用程序有扎实的理解,从而能够轻松地在不同环境中分发和部署你的软件。Docker 的容器化技术简化了开发和部署过程,使你能够专注于编写优秀的代码。