Docker のオフライン インストールが開始できない
現在のクラウド コンピューティングとコンテナ化の波の下で、Docker は主流のアプリケーション コンテナ化テクノロジとして浮上し、運用、保守、開発の分野で最も広く使用されているツールの 1 つになりました。これに関連して、Docker のオフライン インストールも非常に一般的な要件となり、多くのユーザーがインターネットに接続できない、またはセキュリティなどの理由でインターネット接続が禁止されているため、オフライン インストールは最も便利なインストール方法の 1 つとなっています。しかし、Docker のオフラインインストールでは、インストールは成功しても起動に失敗することが多く、初心者にとっては非常に厄介な問題です。
この記事では、実際の操作から始まり、Docker のオフライン インストール方法を紹介し、起動失敗の詳細な分析を行って詳細なガイドを提供します。
1. Docker のオフライン インストール
Docker をオフラインでインストールするには 2 つの方法があります: 1 つは Docker バイナリ ファイルをダウンロードしてインストールする方法、もう 1 つは yum ソースを設定してインストールする方法です。前者は主にネットワーク条件のないサーバーに適しており、後者は Linux 開発環境のオフライン インストールに適しています。
1. Docker バイナリ ファイルをダウンロードしてインストールする
この方法の原理は比較的単純で、Docker バイナリ ファイルをローカルにダウンロードしてインストールします。具体的な手順は次のとおりです。
1.1 Docker バイナリ ファイルを取得する
公式 Web サイト https://www.docker.com/ から、対応するバージョンの Docker バイナリ ファイルをダウンロードします。ダウンロードする際には、現在のオペレーティング システムに関する情報が必要です。centos システムの場合は、次のアドレスに対応するバイナリ ファイルをダウンロードすることを選択できます。
https://download.docker.com/linux/static/stable/x86_64/ docker-versionnumber.tgz
1.2 Docker バイナリ ファイルのインストール
インストール時ダウンロードしたバイナリ ファイルを解凍し、docker および dockerd ファイルを /usr/bin ディレクトリに移動する必要があります。
tar -xvf docker-versionnumber.tgz
cp docker/* /usr/bin
2. yum ソースを設定してインストールします
centos システムの下に、yum ソースを構成することで、Docker をオフラインでインストールできます。具体的な手順は次のとおりです。
2.1 Docker の yum ソースを取得します。
公式 Web サイト https://www.docker.com/ から、対応するバージョンの Docker インストール パッケージをダウンロードします。ダウンロードする際には、現在のオペレーティング システムに関する情報を把握し、システム バージョンに対応する rpm パッケージをダウンロードする必要があります。
2.2 新しいローカル yum ソースの作成
ローカル yum ソース ディレクトリを作成し、ダウンロードした Docker インストール パッケージをこのディレクトリにコピーし、createrepo コマンドを使用してディレクトリを作成します
# mkdir /var/dockercp docker-ce*.rpm /var/docker
createrepo /var/docker
name=Docker Local repo
baseurl=file:///var/docker
Enabled=1
gpgcheck=0
制御プロセスがエラー コードで終了したため、docker.service のジョブが失敗しました。
詳細については、「systemctl status docker.service」および「journalctl -xe」を参照してください。
...
Apr 30 07:40:32 localhost.localdomain systemd[1]: Docker Application Container Engine を開始しました。
Apr 30 07:40:32 localhost.localdomain systemd[1]: docker.service: メインプロセスが終了しました、コード=exited 、status=1/FAILURE
Apr 30 07:40:32 localhost.localdomain systemd[1]: ユニット docker.service が失敗状態になりました。
Apr 30 07:40:32 localhost.localdomain systemd[1] ]: docker.service が失敗しました。
Apr 30 07:40:32 localhost.localdomain systemd[1]: docker.service ホールドオフ タイムオーバー、再起動のスケジュール設定。
Apr 30 07:40:32 localhost.localdomain systemd[ 1] : Docker アプリケーション コンテナ エンジンが停止しました。
dockerd-current[14552]: time="2020-04-30T07:40:32.652790118 08:00" level=error msg =" systemd notifier が失敗しました: systemd モジュール \"libsystemd.so\" をロードできません: 共有 o
dockerd-current[14552] を開けません: デーモンの起動に失敗しました: ネットワーク コントローラーの初期化エラー: ブリッジ アドレスのリストに失敗しました: PreDefinedLocalScopeDefaultNetworks リスト失敗: 事前定義された
dockerd-current[14552]: デーモンの開始エラー: ネットワーク コントローラーの初期化中にエラーが発生しました: ブリッジ アドレスの一覧表示に失敗しました: PredependentLocalScopeDefaultNetworks リストの失敗: 事前定義された
systemd[1]: docker.service: メイン プロセスが終了しました、コード =終了しました、ステータス = 1/FAILURE
systemd[1]: Docker Application Container Engine の開始に失敗しました。
systemd[1]: ユニット docker.service が失敗状態になりました。
systemd[1]: docker.service
上記のエラー メッセージから、Docker の起動に失敗した理由は、Docker のネットワーク コントローラーを起動できないためであることがわかります。具体的には、Docker のネットワーク コントローラーが iptables ファイアウォールを通じてコンテナ ネットワークを管理し、ファイアウォールがデフォルトですべての非ローカル トラフィックを禁止しているためです。 Docker の場合、初回起動時に iptables に関連ルールが自動的に追加されますが、オフラインでインストールされた Docker を初めて起動するとルールの追加に失敗し、ネットワーク コントローラーの起動に失敗します。具体的には、ユーザーが Docker を起動すると、Docker はローカル IP アドレスに基づいて docker0 という名前のブリッジを自動的に作成します。この操作が失敗すると、Docker を起動できなくなります。
3. 問題解決
この問題を解決するには、主に 2 つの方法があります:
3.1 docker0 ブリッジを作成する
docker0 ブリッジを手動で作成すると、問題を解決できます。この問題に対して、centos で次のコマンドを実行して docker0 ブリッジを手動で作成できます:
sudo ip link add name docker0 type Bridge
sudo ip addr add dev docker0 172.17.0.1/16
sudo ip link set dev docker0 up
上記の操作が完了したら、再度 Docker を起動し、管理者として次のコマンドを実行します。
$ sudo systemctl start docker
toスタートアップのDockerを完成させます。
3.2 ファイアウォール ルールを変更する
ファイアウォールを無効にするか、ファイアウォール ルールを変更することも、この問題を解決する効果的な方法です。ファイアウォールをオフにするときは、次のコマンドを使用できます:
$ systemctl stop firewalld
$ systemctl disable firewalld
ただし、この状況はお勧めできません。セキュリティ要件に従って可能な限りファイアウォールを使用します。
iptables ルールを変更する場合は、次のコマンドを使用してルールを追加できます:
$ sudo iptables -P FORWARD ACCEPT
$ sudo iptables -I FORWARD -j ACCEPT
$ sudo service iptables save
上記の操作を行った後、再度Dockerを起動すると正常に起動します。
3. 概要
この記事の導入部を通じて、Docker をオフラインでインストールすると、ネットワークの問題により Docker が起動しない可能性があることがわかりました。現時点では、Docker のネットワーク コントローラーの動作原理を理解し、手動で構成するか、iptables ファイアウォールに特定の変更を加えて、Docker の起動失敗の問題を最終的に解決する必要があります。もちろん、特定のエラー メッセージを適時に確認し、分析を行うことで、このような問題を解決することもできます。
したがって、Docker のオフライン インストールと起動中は、慎重かつ忍耐強く、実験とデバッグを続け、最終的には問題を解決する適切な方法を見つける必要があります。
以上がDocker のオフライン インストールが開始できないの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









この記事では、プロセス中の準備、展開ステップ、セキュリティ対策をカバーするDocker Swarmへのアプリケーションの展開を詳細に説明します。

この記事では、Kubernetesのポッド、展開、およびサービスについて説明し、コンテナ化されたアプリケーションの管理における役割について詳しく説明しています。これらのコンポーネントが、アプリケーション内のスケーラビリティ、安定性、および通信をどのように強化するかについて説明します。(159文字)

この記事では、手動スケーリング、HPA、VPA、およびCluster Autoscalerを使用してKubernetesのスケーリングアプリケーションについて説明し、スケーリングを監視および自動化するためのベストプラクティスとツールを提供します。

この記事では、Docker Swarmにローリングアップデートを実装して、ダウンタイムなしでサービスを更新することについて説明します。サービスの更新、更新パラメーターの設定、監視の進捗状況、スムーズな更新の確保をカバーしています。

記事では、Docker Swarmのサービスの管理、ダウンタイムなしで作成、スケーリング、監視、更新に焦点を当てています。

この記事では、さまざまなツールとベストプラクティスを使用して、作成、更新、スケーリング、監視、および自動化に焦点を当てたKubernetesの展開の管理について説明します。

記事では、セットアップ、スケーリングサービス、セキュリティベストプラクティスなど、Docker Swarmクラスターの作成と管理について説明します。

Dockerは、DevOpsエンジニアにとって必須のスキルです。 1.Dockerは、アプリケーションとその依存関係をコンテナにパッケージ化することにより、分離と移植性を実現するオープンソースのコンテナ化されたプラットフォームです。 2. Dockerは、名前空間、コントロールグループ、フェデレーションファイルシステムで動作します。 3。基本的な使用には、コンテナの作成、実行、管理が含まれます。 4.高度な使用法には、DockerComposeを使用してマルチコンテナーアプリケーションを管理することが含まれます。 5.一般的なエラーには、コンテナ障害、ポートマッピングの問題、データの持続性の問題が含まれます。デバッグスキルには、ログの表示、コンテナの入り、および詳細情報の表示が含まれます。 6.パフォーマンスの最適化とベストプラクティスには、画像の最適化、リソースの制約、ネットワーク最適化、DockerFileを使用するためのベストプラクティスが含まれます。
