Docker はますます成熟し、その機能もますます強力になっています。 Docker Stack を使用してサービス クラスターを構築するのも非常に便利です。Docker 自体がロード機能を提供しており、非常に便利です。これを皆さんと共有し、簡単なチュートリアルを作成したいと思います。 環境 このチュートリアルでは、2台のCentos7仮想マシンを使用しました。それらのIPアドレスは次のとおりです。 メインサーバー: 192.168.0.105 // プライベート倉庫サーバー サーバー 2: 192.168.0.49 この投稿のすべてのコードは GitHub で見つかります: https://github.com/lpxxn/godockerswarm Docker Swarmのセットアップ 私は192.168.0.105をメインサーバーとして使用し、そこでSwarmを起動します docker スウォーム初期化 コマンドを実行すると、群れに参加するためのコマンドが与えられます 192.168.0.49でコマンドを実行してswarmに参加します docker swarm に参加 --token SWMTKN-1-425vswwmb8o34uhnmo58w0k4rfzs5okjtye7mokpqps1vl9ymq-0p6pr2gua7l8a6udb67tfndoo 192.168.0.105:2377 このようにして、群れが構築され、2 つのホスト間に関係が確立されました。 ウェブサービス このウェブサービスはGo言語で書かれたシンプルなインターフェースで、ホスト名を返します。これにより、負荷があるかどうかを簡単に確認できます。 パッケージメイン 輸入 ( 「fmt」 "ログ" 「ネット/http」 「オス」 ) 関数main() { http.HandleFunc("/hi", func(w http.ResponseWriter, r *http.Request) { ホスト名、_ := os.Hostname() fmt.Fprintf(w, "ホスト名: %s", ホスト名) }) log.Fatal(http.ListenAndServe(":8000", nil)) } Dockerファイル Dockerfile を見てみましょう: 実行とは、コードを対応するフォルダーにコピーし、ポートを公開し、golang コンテキストに基づいてプログラムを実行することを意味します。簡単ですよね? Golangから # 現在のディレクトリの内容をコンテナにコピーします コピー ./go/src/github.com/lpxxn/godockerswarm/ ワークディレクトリ /go/src/github.com/lpxxn/godockerswarm/ 実行してビルドする エクスポーズ8000 コマンド ["./godockerswarm"] dockerfileファイルが保存されているフォルダを見てみましょう このディレクトリで docker build コマンドを実行します。 docker ビルド . -t goweb:1.0 新しく生成されたイメージを実行できます docker run -p 8100:8000 7a7e3 イメージをプライベートリポジトリに送信する ここでは、プライベート ウェアハウス サーバーの構築方法について詳しく説明します。以前の投稿で確認してください。 アドレス: https://www.jb51.net/article/156168.htm クラスター内のマシンは自動的にウェアハウスからイメージを取得してプログラムを実行するため、上記で生成したイメージをプライベート ウェアハウスにプッシュする必要があります。自分で作った タグを使用して名前を変更する docker タグ goweb:1.0 lpxxn.com:5000/goweb:1.0 押す docker push lpxxn.com:5000/goweb:1.0 docker-compose ファイル 次にdocker-compose.ymlファイルを作成します 画像は上記で作成した画像です。 5 つのアプリケーションを実行すると、Docker は独自のロード、ポート 8111 のマッピング、障害発生時のサービスの自動再起動、独自のネットワークの作成を実行します。これは、複数のサーバー サービスがある場合に非常に便利です。 具体的なパラメータについては、公式チュートリアルを参照してください。 詳しくはこちら バージョン: "3" サービス: ウェブ: 画像: lpxxn.com:5000/goweb:1.0 展開する: レプリカ: 5 リソース: 制限: CPU: "0.1" メモリ: 50M 再起動ポリシー: 条件: 失敗時 ポート: - 「8111:8000」 ネットワーク: - ゴーウェブネット ネットワーク: ゴーウェブネット: アプリケーションをデプロイする さて、最終段階です。デプロイメントも同様に簡単です。deploy コマンドを実行します。 docker スタックデプロイ -c docker-compose.yml mygoweb 開始したサービスを表示 docker サービス ps mygoweb テストサービス 返されたホスト名を見てください。それらは異なります。 Docker が代わりにロードを実行します。 この投稿のすべてのコードは GitHub で見つかります: https://github.com/lpxxn/godockerswarm 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
>>: JavaScript は、マウスがテーブル行を通過するときに色の識別を実装します。
<br />このページはUTF8エンコードを使用しており、ヘッダーとフッターはテンプレー...
Linux パーティションでよく使用されるコマンド: fdisk、MBR パーティション テーブルの...
1. はじめにこの記事では、Docker を使用して Redis を探索する方法を説明します。 Do...
目次序文基本的な紹介コードの実装基本構造アップロード分析Excel にエクスポート基本構造Excel...
1 はじめに「Maven がワンクリックで Springboot を Docker リポジトリにデプ...
コードをコピーコードは次のとおりです。 <form action="/hehe&qu...
HTML でよく使用されるエスケープ文字をまとめると次のようになります。 改行...
1. 関連概念1.1 Jenkins の概念: Jenkins は、使用されるプラットフォームに関係...
MySQL の explain コマンドは SQL のパフォーマンスを分析できます。その 1 つが ...
背景アプリケーション システムの数が増え続けると、当初はアラームを発していなかったアクティブ スレッ...
上部のメニュー バーに検索ボックスを配置するのは一般的なシナリオですが、検索機能がそれほど頻繁に使用...
目次質問背景アイデアと実装質問次のように、同時実行 Promise の数を制御するメソッドを記述する...
操作効果: html <!-- この要素は表示されません。DOM は JavaScript に...
目次小さいけれど美しいシンプルにNULL値を避けるデータタイプを選択する手順データ型の紹介1. 文字...
この記事の環境はWindows 10、MySQLのバージョンは5.7.12-logです1. 基本的な...