Docker コンテナとして実行する Golang アプリケーション

Docker Kontenatoshite Shi Xingsuru Golang Apurikeshon



このチュートリアルでは、Golang アプリケーションを Docker コンテナとして実行するように設定することで、コンテナ化の基本を学びます。 Dockerfile を操作してアプリケーションのすべての要件を構成する方法を学びます。

Go は、オープンソースで静的に型付けされ、コンパイルされるプログラミング言語であり、シンプルで信頼性が高く、効率性の高いソフトウェアの開発を容易にする機能で知られています。 Web アプリ、クラウド ネイティブ ソリューション、コマンド ライン インターフェイス (CLI) を含むさまざまなアプリケーションの作成に有用であり、興味深いことに、Docker 自体も Go を使用して作成されています。

この例では、Go で単純な HTTP サーバーを構築します。これにより、簡単な手順でアプリケーションを構築して Docker 化する方法を示すことができます。







要件:

このチュートリアルを進めるには、次のツールが必要です。



  1. インストールされた Go コンパイラー (バージョン 1.21 以降が必要)
  2. ホストマシン上でDockerエンジンを実行する
  3. Go アプリケーションを編集するための IDE またはテキスト エディター。 Visual Studio または Vim の使用をお勧めします。
  4. Bash、ZSH、PowerShell などのコマンドライン インタープリター。

所定の要件が満たされたので、アプリケーションの構築方法を学びましょう。



アプリケーションの構築

次のステップは、アプリケーションを構築することです。この例では、単純なメッセージで応答する単純な HTTP サーバーを構築します。





まず、Go プロジェクトを保存するディレクトリを作成します。適切な名前を付けることができます。

$ mkdir go_server

ディレクトリに移動し、ソース コードを保存する新しいファイルを作成します。この例では、ファイルが Go ソース コードであることを示す「main.go」ファイルを呼び出します。



$ 触る メイン.ゴー

最後に、次のようにファイルを編集し、ソース コードをアプリケーションに追加します。

パッケージメイン

輸入 (
「fmt」
「ネット/http」
)

ファンクメイン ( ) {
// 受信リクエストを処理する
http.HandleFunc ( 「/」 、機能 ( http.ResponseWriter、r * http.リクエスト ) {
// クライアントへの返答を書く
fmt.Fprintf ( 「Docker から (:」) )
} )

// ポート上でHTTPサーバーを起動します 8080
fmt.Println ( 「サーバーは:8080 で実行されています」 )
http.ListenAndServe ( ':8080' 、なし )
}

前のアプリケーションは、ポート 8080 にバインドする基本的な HTTP サーバーを作成します。サーバーは、以前に定義された基本メッセージで応答します。

アプリケーションのテスト

アプリケーションを Docker 化する前に、アプリケーションが適切に機能していることを確認しましょう。次のコマンドを実行します。

$ main.go を実行します

前のコマンドはアプリケーションを起動し、次のようなメッセージを返します。

サーバーは次で実行されています: 8080

次に、HTTP サーバーをテストするには、次のように「curl」コマンドを実行します。

$ カール http: // ローカルホスト: 8080 /

前のコマンドは次のようなメッセージを返すはずです。

ドッカーから ( : %

ここで、次のステップで定義されているように、前のアプリケーションを Dockerize することができます。

アプリケーションのコンテナ化

次のステップでは、アプリケーション用のコンテナを構築する方法について説明します。まず、プロジェクト ディレクトリに Dockerfile を作成します。

$ CD go_server

拡張子なしで Dockerfile という名前のファイルを作成し、テキスト エディターでファイルを編集します。このファイルを使用すると、アプリケーションのすべての要件を次のように定義できます。

$ 触る Dockerfile
$ なぜなら Dockerfile

次のように構成を追加します。

ゴーランから: 1.21

作業ディレクトリ / アプリ

コピー 。 。

RUN go build main.go -O 主要 。

さらす 8080

CMD [ '。/主要' ]

前の Dockerfile では、アプリケーションの前の操作を定義しました。

  • ベースイメージを公式 Golang イメージ バージョン 1.21 に設定します。
  • コンテナ内の作業ディレクトリを「/app」に設定します。
  • プロジェクト ディレクトリ全体をコンテナにコピーします。
  • コンテナ内に Go アプリケーションを構築します。
  • ポート 8080 を公開して、受信 HTTP トラフィックを許可します。
  • Go アプリケーションを実行するコマンドを設定します。

Docker イメージの構築

アプリケーションのイメージをビルドするには、ターミナルを開いてプロジェクト ディレクトリに移動します。次に、次のコマンドを実行してイメージをビルドします。

$ 須藤 ドッカービルド -t go_server_docker 。

go_server_docker を、アプリ イメージに割り当てる名前に置き換えます。

Docker イメージの構築に成功したら、次のコマンドを使用して、そのイメージに基づいてコンテナーを実行できます。

$ ドッカーラン -p 8080 : 8080 go_server_docker

前のコマンドは、ホスト マシンのポート 8080 をコンテナ内のポート 8080 にマップする必要があります。

コンテナーをテストするには、次のコマンドを実行します。

$ カール http: // ローカルホスト: 8080

これにより、アプリケーションで定義されたメッセージが出力されます。

結論

このチュートリアルでは、基本的な Go アプリケーションを作成する方法を学びました。また、Dockerfile で要件を定義し、コンテナーからイメージを構築し、イメージからコンテナーを実行することにより、アプリケーションをコンテナー化する方法についても学びました。