さまざまな環境での Docker Compose のインストール方法

さまざまな環境での Docker Compose のインストール方法

1. オンラインインストール

現在、Linux x86アーキテクチャのオンラインインストールのみを試しました

1. docker-composeをダウンロードする

docker-composeを/usr/local/bin/にダウンロードします。

$ sudo curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

2. docker-composeの実行権限を与える

$ sudo chmod +x /usr/local/bin/docker-compose

3. 確認する

[root@localhost bin]# docker-compose -version
docker-compose バージョン 1.21.2、ビルド e7de1bc

2. オフラインインストール

(I) Linux x86 への docker-compose のインストール手順

方法1.バイナリファイルを使用してインストールする

Linux x86 の場合、https://github.com/docker/compose/releases から対応する Linux バージョンの docker-compose バイナリ ファイルをローカル コンピューターにダウンロードして Linux に送信し、/usr/local/bin/ にコピーするだけで、通常どおり使用できます。

方法2. Pythonを使用してコンパイルしてインストールする

github から dockerCompoes ソース コードをダウンロードします。次に、次の手順に従います。

  • docker-composeソースディレクトリに入る
  • python setup.py installを実行します

2. バイナリファイルを使用しないその他のシステムインストールプロセス

一部のアーキテクチャの docker-compose バイナリ ファイルは公式に提供されていないため、手動でコンパイルしてインストールする必要があります。その他の公式のものもPythonを使用して手動でコンパイルおよびインストールする必要があります。

試してみたところ、どうやらpythonコンパイルを使う方法のみで正常にインストールできるようで、以下の3つの方法は全て失敗しました。

Pythonを使用してコンパイルしてインストールする

docker-compose github ソース コードと python コンパイルおよびインストールを使用します。

  • docker-composeのソースディレクトリに入る
  • python setup.py installを実行します

エラーを報告する

引き続き、requests10 バージョン エラーが報告されます。バージョン 10 を削除し、バージョン 16 に変更しました。また、docker に必要な request2.14 以上も報告されます。これは、ダウンロードした docker-compose ソース バージョンが、インストールされている docker バージョンに対応していないことを意味します。

ダウンロードして、ソースコードの下の requirements.txt ファイルでリクエストのバージョンを確認し、インストールされている docker に対応するバージョンを見つけて、再度インストールします。texttable のバージョンが再び正しくないことが報告されています。さらに、ネットワーク接続がないと自動的にダウンロードすることはできません。手動で https://pypi.org/project/texttable/ にアクセスして、対応するバージョンを見つけ、ダウンロード、コンパイル、インストールすることしかできません。

不足している依存関係を修正する

依存関係が不足しているなどの問題が発生した場合は、Python の公式 Web サイトからダウンロードし、コンパイルしてインストールする必要があります。例:

2 つの依存関係 (requests と texttable) をインストールし、docker-compose が docker バージョンに対応していることを確認します。 Pythonのコンパイルとインストールを続行します

  1. docker-composeソースディレクトリに入る
  2. python setup.py installを実行します

エラー:

/usr/lib/python2.7/site-packages/docker_compose-1.21.2-py2.7.egg をインストールしました
docker-compose==1.21.2 の依存関係を処理しています
docker<4.0,>=3.3.0を検索しています
https://pypi.python.org/simple/docker/ を読む
https://pypi.python.org/simple/docker/ でのダウンロード エラー: [Errno -2] 名前またはサービスが不明です -- 一部のパッケージが見つからない可能性があります。
'docker' のインデックス ページを取得できませんでした
すべてのパッケージのインデックスをスキャンしています (これにはしばらく時間がかかる場合があります)
https://pypi.python.org/simple/ を読む
https://pypi.python.org/simple/ でのダウンロード エラー: [Errno -2] 名前またはサービスが不明です -- 一部のパッケージが見つからない可能性があります。
docker<4.0,>=3.3.0 のローカル パッケージまたはダウンロード リンクが見つかりません
エラー: Requirement.parse('docker<4.0,>=3.3.0') に適したディストリビューションが見つかりませんでした

理由: Python の Docker バージョンが間違っています。https://pypi.python.org/simpl... に再度アクセスしてコンパイルし、インストールしてください。

ダウンロードしたpython docker3.3.0ディレクトリに入り、python setup.py installコマンドを実行します。
出力:

...
.../usr/lib/python2.7/site-packages/idna-2.5-py2.7.egg を使用します
chardet==3.0.2を検索しています
ベストマッチ: chardet 3.0.2
chardet-3.0.2-py2.7.egg を処理中
chardet 3.0.2 はすでに easy-install.pth でアクティブなバージョンです
chardetect スクリプトを /usr/bin にインストールする

/usr/lib/python2.7/site-packages/chardet-3.0.2-py2.7.egg を使用する
docker==3.3.0 の依存関係の処理が完了しました

もう一度docker-compose-1.21.2ディレクトリに入ります

Pythonを使用してdocker-composeをインストールする

  [root@localhost docker-3.3.0]# cd ../docker-compose-1.21.2/
  [root@localhost docker-compose-1.21.2]# ls
  ビルド、compose、dist、LICENSE、README.rst、setup.cfg、テスト
  CHANGELOG.md contrib docker_compose.egg-info MANIFEST.in requirements-dev.txt setup.py tox.ini
  CHANGES.md CONTRIBUTING.md Dockerfile   
  [root@localhost docker-compose-1.21.2]# python setup.py をインストール

最後に、インストールが成功し、次のように表示されます。

/usr/lib/python2.7/site-packages/idna-2.5-py2.7.egg を使用する
chardet==3.0.2を検索しています
ベストマッチ: chardet 3.0.2
chardet-3.0.2-py2.7.egg を処理中
chardet 3.0.2 はすでに easy-install.pth でアクティブなバージョンです
chardetect スクリプトを /usr/bin にインストールする

/usr/lib/python2.7/site-packages/chardet-3.0.2-py2.7.egg を使用する
docker-compose==1.21.2 の依存関係の処理が完了しました

4. ソフト接続を確立する

[root@localhost bin]# ln -s /usr/bin/docker-compose /usr/local/bin/docker-compose

5. 確認する

[root@localhost bin]# docker-compose -version
docker-compose バージョン 1.21.2、ビルド e7de1bc

3. その他

setup.py を通じて Python モジュールをインストールする方法

  • インストールディレクトリを入力してください
  • python setup.py ビルド
  • python setup.py インストール

その他の失敗したインストールの試み
1. バイナリ ファイル インストールを使用して、コンパイルされたバイナリ ファイルを見つけ、それを /usr/local/bin の下に配置します。次のエラーが報告されます: このバイナリ ファイルを実行できません。

2. dep を使用して対応する dep インストール パッケージをインストールおよびダウンロードし、データ ファイルを解凍し、docker-compose を /usr/local/bin に配置して、エラーを実行します: /usr/bin/python3: bad interpreter looking for mirror, no available mirror found

3. make インストール make を使用してインストールを開始したところ、Linux で通常コンパイルされインストールされる構成ファイルが見つからないことに気付きました。 ./configuration を使用しましたが、ファイルが見つからないというエラーが報告されました。

これで、さまざまな環境での Docker Compose のインストール方法についての説明は終了です。Docker Compose のさまざまなインストール方法についての詳細は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Docker-compose チュートリアルのインストールとクイックスタート
  • Docker および Docker-compose のワンクリック インストール チュートリアル (オンラインとオフラインをサポート)
  • docker-composeをインストールする最も簡単な方法2つ
  • docker と docker-compose のインストールの詳細な例
  • Docker-composeのインストールと設定の詳細な手順
  • docker-compose で Jenkins をインストールする際の実践的なメモ

<<:  MySQL学習記録: KEYパーティションが引き起こした血なまぐさい事件

>>:  Mysql5.7でのスケジュールバックアップの実装

推薦する

MySQL の DOS ウィンドウの文字化け問題を解決する方法

文字化けしたコードの問題は次のとおりです。 この問題の原因は非常に単純です。コマンドラインのエンコー...

Linux での grep コマンドの使い方の詳細な説明

1. 公式紹介grep は Linux でよく使用されるコマンドです。これは、ファイルやテキストに対...

Reactエラー境界コンポーネント処理

React 16の内容です。最新技術ではありませんが、ドキュメントで調べるまであまり話題に上がらなか...

Linuxシステムでノードプロセスを実行しているが、プロセスを強制終了できない問題を解決します

まず、Linux システムで実行されているノード プロセスはプロセスを強制終了できないことを紹介しま...

vue+openlayer をベースにマップの集約と散乱効果を実現

目次序文:結果: 1.重合効果: 2. 散布効果:具体的な実装手順: 1. プロジェクトにOpenL...

CSSポジションの5つの異なる値の使い方の詳細な説明

位置プロパティposition プロパティは、要素に使用する配置方法のタイプ (静的、相対的、固定、...

表のセル間隔とセルパディングの違いの詳細な説明

テーブルとは何ですか?セルセルで構成されています。表では、<td> の数は、<tr...

重複したMySQLテーブルをマージして削除する簡単な方法

シナリオ:クロールされたデータは、別のメインテーブルと同じ構造を持つデータテーブルを生成するため、マ...

モバイルの赤い封筒の雨機能ページを実装するための JavaScript HTML

この記事の例では、モバイル紅包雨機能ページを実現するためのHTMLの具体的なコードを共有しています。...

CSS transform-originプロパティを理解する

序文最近、花火アニメーションを作成しました。花火が散るアニメーションです。アニメーションの実装中、花...

Vue でユーザー権限に基づいてルートを動的に追加する方法

ユーザーの権限に応じて異なるメニュー ページを表示します。知識ポイントルートガード(事前ガードを使用...

古典的なスネークゲームの JavaScript 実装

この記事では、古典的なスネークゲームを実装するためのJavaScriptの具体的なコードを参考までに...

Vueでフォームデータを取得する方法

目次必要データを取得して送信するテンプレートフィルターフィルターの使用シナリオ要約する必要Vue を...

モバイル開発におけるHTML5開発の現状を深く理解する

「私たちは次の一連のモバイル製品を HTML5 で作成しています。」 「ええ、最近は多くの人が Ap...

Mysqlツリー再帰クエリの実装方法

序文部門テーブルなどのデータベース内のツリー構造データの場合、部門のすべての従属部門または部門のすべ...