ホームページ  >  記事  >  バックエンド開発  >  Golang と Docker を使用してアプリケーションをデプロイする方法

Golang と Docker を使用してアプリケーションをデプロイする方法

PHPz
PHPzオリジナル
2023-03-22 16:31:481346ブラウズ

今日のソフトウェア開発業界では、コンテナ化テクノロジーの人気が高まっているソリューションです。現在最も人気のあるコンテナ化ツールとして、Docker は移植性の高さ、軽量さ、ポータビリティなどのさまざまな利点で広く認識されています。同時に、Golang は最新の高性能プログラミング言語として、ますます多くの開発者に愛されています。この記事では、Golang と Docker を使用してアプリケーションをデプロイする方法を説明します。

ステップ 1: Golang アプリケーションを作成する

まず、Golang アプリケーションを作成する必要があります。ここでは、Golang によって実装された単純な Web サービスを例に挙げます。コードは次のとおりです:

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 パスにコピーします。

  • #コンテナ内でアプリケーションをコンパイルします。

  • コンテナによって開かれるポートを指定します。

  • ミラー起動のデフォルト コマンドを構成します。ここでは

    CMD ["/go/src/app/app"] です。

次に、ローカル ターミナルで Docker イメージを構築し、次のコマンドを実行します。

$ docker build -t my-go-app:v1 .
このコマンドは、現在のディレクトリに入り、構成ファイルに従ってイメージを作成します。 Dockerfile 内

my-go-app という名前のイメージ バージョン v1

ステップ 3: Docker コンテナを実行する

Docker イメージを作成した後、コンテナを起動する必要があります。次のコマンドを使用して、

my-go-app イメージを開始します。

$ docker run -d -p 8080:8080 my-go-app:v1
上記のコマンドは、

my-go-app イメージを開始するために使用されます。 Docker コンテナーを作成し、コンテナー内の 8080 ポートをホスト (つまり、ローカル マシン) の 8080 ポートにマップします。 -d はコンテナがバックグラウンドで実行されることを意味し、-p はポート マッピングを意味します。このコマンドを実行すると、ローカル マシン上のサービスにアクセスできるようになります。たとえば、ブラウザで http://localhost:8080 にアクセスすると、アプリケーションの応答メッセージを確認できます。

ステップ 4: 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 は Docker Hub アカウント名です。

ステップ 5: リモート ホストに Docker イメージをデプロイする

イメージを Docker Hub にアップロードした後、他のマシンのアプリにイメージをデプロイできます。まず、リモート ホストに Docker 環境をインストールする必要があります。 Docker をインストールした後、次のコマンドを実行して、リモート マシン上の Docker Hub または他のプライベート ウェアハウスにアップロードされたイメージをプルできます。

$ docker pull username/my-go-app:v1
その後、の方法に従ってコンテナーを起動できます。ステップ 3. を開始すると、リモート ホスト上のアプリケーションにアクセスできるようになります。

概要

上記の 5 つの手順を通じて、Golang と Docker を使用してアプリケーションをデプロイする方法を正常に紹介しました。現在、Docker は最新のアプリケーションの開発と配信のための主要なソリューションの 1 つとなっています。そのため、Docker を活用して Golang アプリケーションをデプロイすることで、構成の問題や環境の問題を大幅に軽減し、アプリケーションの移植性の高いパフォーマンスとスケーラビリティを実現できます。

以上がGolang と Docker を使用してアプリケーションをデプロイする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。