現在のクラウド コンピューティングとコンテナ化の波の下で、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 サイトの他の関連記事を参照してください。

LinuxでDockerを使用すると、開発効率が向上し、アプリケーションの展開を簡素化できます。 1)Ubuntu画像を引く:dockerpullubuntu。 2)ubuntuコンテナを実行:Dockerrun-itubuntu/bin/bash。 3)nginxを含むDockerFileを作成します:fromubuntu; runapt-getupdate && apt-getinstall-ynginx; expose80。 4)画像の作成:dockerbuild-tmy-nginx。 5)コンテナの実行:Dockerrun-D-P8080:80

Dockerは、Linuxのアプリケーションの展開と管理を簡素化します。 1)Dockerは、アプリケーションとその依存関係を軽量でポータブルコンテナにパッケージ化するコンテナ化されたプラットフォームです。 2)Linuxでは、DockerはCgroupと名前空間を使用して、コンテナの分離とリソース管理を実装します。 3)基本的な使用には、画像の引き込みと実行容器が含まれます。 DockerComposeなどの高度な使用は、マルチコンテナーアプリケーションを定義できます。 4)一般的に使用されるDockerLogsとDockerexecコマンドをデバッグします。 5)パフォーマンスの最適化は、マルチステージの構造により画像サイズを縮小することができ、DockerFileをシンプルに保つことがベストプラクティスです。

Dockerは、アプリケーションのパッケージ化、配布、およびアプリケーションの携帯性とスケーラビリティを改善するために使用されるLinuxコンテナテクノロジーベースのツールです。 1)DockerBuildおよびDockerrunコマンドを使用して、Dockerコンテナを構築および実行できます。 2)DockerComposeを使用して、マルチコンテナーDockerアプリケーションを定義および実行して、マイクロサービス管理を簡素化します。 3)マルチステージの構造を使用すると、画像サイズを最適化し、アプリケーションの起動速度を向上させることができます。 4)コンテナログの表示は、コンテナの問題をデバッグする効果的な方法です。

Docker Containerの起動手順:コンテナ画像を引く:「Docker Pull [Mirror Name]」を実行します。コンテナの作成:「docker create [options] [mirror name] [コマンドとパラメーター]」を使用します。コンテナを起動します:「docker start [container name or id]」を実行します。コンテナのステータスを確認してください:コンテナが「Docker PS」で実行されていることを確認します。

Dockerログを表示する方法は次のとおりです。たとえば、Docker Logsコマンドを使用します。たとえば、Docker logs container_name docker execコマンドを使用して /bin /shを実行し、logファイルを表示します。 cat /var/log/container_name.log docker-compose -f docker-comのDocker ComposeのDocker-Composeログを使用します。

すべてのコンテナ(Docker PS)をリストする手順に従って、Dockerコンテナ名を照会できます。コンテナリストをフィルタリングします(GREPコマンドを使用)。コンテナ名(「名前」列にあります)を取得します。

Dockerでコンテナを作成します。1。画像を引く:Docker Pull [ミラー名]2。コンテナを作成:Docker Run [Options] [Mirror Name] [コマンド]3。コンテナを起動:Docker Start [Container Name]

Dockerコンテナを終了する4つの方法:コンテナ端子でCtrl Dを使用するコンテナターミナルに出口コマンドを入力しますDocker stop< container_name>コマンドを使用するDocker Kill< container_name>ホストターミナルのコマンド(フォース出口)


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

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

WebStorm Mac版
便利なJavaScript開発ツール

Dreamweaver Mac版
ビジュアル Web 開発ツール

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