>  기사  >  백엔드 개발  >  Golang 및 Docker를 사용하여 애플리케이션을 배포하는 방법

Golang 및 Docker를 사용하여 애플리케이션을 배포하는 방법

PHPz
PHPz원래의
2023-03-22 16:31:481373검색

오늘날의 소프트웨어 개발 업계에서 컨테이너화 기술은 점점 더 대중적인 솔루션이 되었습니다. 현재 가장 널리 사용되는 컨테이너화 도구인 Docker는 높은 이식성, 경량성, 이식성 등 다양한 장점으로 널리 알려져 있습니다. 동시에 현대적인 고성능 프로그래밍 언어인 Golang은 점점 더 많은 개발자들에게 사랑을 받고 있습니다. 이번 글에서는 Golang과 Docker를 사용하여 애플리케이션을 배포하는 방법을 설명하겠습니다.

1단계: Golang 애플리케이션 작성

먼저 Golang 애플리케이션을 작성해야 합니다. 여기서는 Golang으로 구현된 간단한 웹 서비스를 예로 들어 보겠습니다. 코드는 다음과 같습니다.

package main 

import (
    "fmt"
    "net/http"
)

func main() {
    http.HandleFunc("/", helloHandler) // 注册路由
    http.ListenAndServe(":8080", nil)  // 启动 HTTP 服务
}

func helloHandler(w http.ResponseWriter, req *http.Request) {
    fmt.Fprintf(w, "Hello Docker and Golang!")
}

여기의 애플리케이션은 시작 후 포트 8080을 수신하고 이 포트에 간단한 응답 메시지를 제공합니다.

2단계: Docker 이미지 생성

모든 Docker 호스트에 대한 배포를 용이하게 하려면 Golang 애플리케이션을 Docker 이미지로 패키징해야 합니다. Docker 이미지를 생성하기 전에 Golang 애플리케이션에 대한 Dockerfile 구성 파일을 작성해야 합니다.

# Dockerfile
FROM golang:alpine

WORKDIR /go/src/app
COPY . .

RUN go build -o app

EXPOSE 8080
CMD ["/go/src/app/app"]

위 Dockerfile은 다음과 같은 단계로 나누어져 있습니다.

  • Golang으로 작성된 Alpine 이미지를 기반으로 새로운 이미지를 생성합니다.

  • 애플리케이션이 위치한 소스코드 디렉터리를 컨테이너의 /go/src/app 경로에 복사하세요. /go/src/app 路径下。

  • 在容器中编译应用程序。

  • 指定容器开放的端口。

  • 配置镜像启动的默认命令,这里为 CMD ["/go/src/app/app"]

接下来,在本地终端中构建我们的 Docker 镜像,执行以下命令:

$ docker build -t my-go-app:v1 .

这个命令会进入当前目录,按照 Dockerfile 中的配置文件创建一个名为 my-go-app 的镜像版本 v1

第三步:运行 Docker 容器

创建好 Docker 镜像后,接下来需要启动容器。我们使用以下命令来启动 my-go-app 镜像:

$ docker run -d -p 8080:8080 my-go-app:v1

上面的命令用于在 Docker 容器中启动 my-go-app 镜像,并将容器内部的 8080 端口映射到宿主机(即本机)的 8080 端口。 -d 表示容器以后台方式运行, -p 表示端口映射。 运行完这个命令后,我们可以在本地机器上访问该服务,例如在浏览器中访问 http://localhost:8080 就能够看到应用程序的响应消息。

第四步:上传 Docker 镜像

当我们在本地构建好 Docker 镜像后,我们还需要将它上传到 Docker Hub 或者自己的私有仓库中,以方便在其他的 Docker 主机上部署应用。 我们需要登录 Docker Hub,即运行以下命令:

$ docker login

接下来,我们可以通过标记并推送这个镜像来上传这个镜像,需要执行以下命令:

$ docker tag my-go-app:v1 username/my-go-app:v1
$ docker push username/my-go-app:v1

其中的 my-go-app:v1 是我们本地构建的镜像版本,username

컨테이너에서 애플리케이션을 컴파일합니다.

컨테이너가 여는 포트를 지정하세요.

미러 시작을 위한 기본 명령을 구성합니다. 여기 CMD ["/go/src/app/app"]가 있습니다.

다음으로, 로컬 터미널에 Docker 이미지를 빌드하고 다음 명령을 실행합니다.

$ docker pull username/my-go-app:v1
🎜이 명령은 현재 디렉터리에 들어가서 구성 파일에 따라 my-go라는 파일을 생성합니다. Dockerfile - 앱의 이미지 버전 <code>v1. 🎜🎜🎜3단계: Docker 컨테이너 실행🎜🎜🎜Docker 이미지를 생성한 후에는 컨테이너를 시작해야 합니다. 다음 명령을 사용하여 my-go-app 이미지를 시작합니다. 🎜rrreee🎜위 명령은 Docker 컨테이너에서 my-go-app 이미지를 시작하는 데 사용됩니다. 내부 8080 포트는 호스트(즉, 로컬 머신)의 8080 포트에 매핑됩니다. -d는 컨테이너가 백그라운드에서 실행됨을 의미하고 -p는 포트 매핑을 의미합니다. 이 명령을 실행한 후 로컬 시스템에서 서비스에 액세스할 수 있습니다. 예를 들어 브라우저에서 http://localhost:8080을 방문하여 응답을 확인할 수 있습니다. 애플리케이션에 메시지를 보냅니다. 🎜🎜🎜4단계: Docker 이미지 업로드🎜🎜🎜Docker 이미지를 로컬로 빌드한 후 다른 Docker 호스트에 애플리케이션을 쉽게 배포할 수 있도록 Docker Hub나 자체 개인 창고에 업로드해야 합니다. Docker Hub에 로그인해야 합니다. 즉, 다음 명령을 실행해야 합니다. 🎜rrreee🎜 다음으로 이 이미지를 표시하고 푸시하여 업로드할 수 있습니다. 🎜rrreee🎜my-go -app:v1 는 로컬로 빌드한 이미지 버전이고 username은 Docker Hub 계정 이름입니다. 🎜🎜🎜5단계: 원격 호스트에 Docker 이미지 배포🎜🎜🎜Docker Hub에 이미지를 업로드한 후 애플리케이션을 다른 컴퓨터에 배포할 수 있습니다. 먼저 원격 호스트에 Docker 환경을 설치해야 합니다. Docker를 설치한 후 다음 명령을 실행하여 원격 시스템의 Docker Hub 또는 기타 개인 창고에 업로드된 이미지를 가져올 수 있습니다. 🎜rrreee🎜 그런 다음 3단계의 방법에 따라 컨테이너를 시작할 수 있습니다. 시작한 후, 우리 애플리케이션은 원격 호스트에서 액세스할 수 있습니다. 🎜🎜🎜요약🎜🎜🎜위의 5단계를 통해 Golang과 Docker를 사용하여 애플리케이션을 배포하는 방법을 성공적으로 소개했습니다. 오늘날 Docker는 최신 애플리케이션 개발 및 제공을 위한 주요 솔루션 중 하나가 되었습니다. 따라서 Docker를 활용하여 Golang 애플리케이션을 배포하면 구성 문제와 환경 문제를 크게 줄여 애플리케이션의 이식성 및 확장성을 높일 수 있습니다. 🎜

위 내용은 Golang 및 Docker를 사용하여 애플리케이션을 배포하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.