第1章 概要
本書では、Red Hat がサポートするコンテナー開発の推奨事項を提供します。現在の Docker 駆動型の実装において、コンテナーは新規かつ迅速に開発されるテクノロジーですが、本書では Red Hat 内のコンテナーサポートの状態をキャプチャーします。コンテナーには多くのユースケースがあるため、本書では Red Hat が役立ち、サポートする基本的なコンテナー関連のプラクティスについての一般的な推奨事項を説明します。
1.1. コンテナーの伝搬
コンテナーの出所どのように取得すればよいでしょうか ?安全な方法で確実に入手するにはどうすれば良いですか ?
コンテナーはイメージからビルドされ、イメージはレジストリーのリポジトリーに保存されます。このトピックでは、docker pull コマンドがアクセスできる 2 つのレジストリーについて説明します。
-
docker.io
レジストリー - [The Red Hat Registry](http://registry.access.redhat.com/)
1.1.1. docker pull のリスク
プル元のレジストリーなしで使用される docker pull コマンドは危険なコマンドです。Docker はソフトウェアの取得とソフトウェアのインストールを区別しません。この動作は RPM の場合とは異なります。RPM をインストールしない限り、wget を使用してマルウェアを含む RPM を取得することが推奨されます。ただし、が安全ではない場合、docker pull を使用してマルウェアをプルする場合は、イメージの取得はそのインストールと機能的に同等であるためです。
たとえば、取得時にコンテナーが特権として実行されるソフトウェアであると仮定します。コンテナーは、その設定を操作した後にのみ特権を再アクティブ化します。コンテナーの分離は通常自発的であり、デフォルトでは分離されていません。
docker pull コマンドを使用する場合は注意が必要です。
コンテナーが Red Hat レジストリーにない場合、docker pull は docker.io
レジストリーにフェイルオーバーします。Red Hat は、docker.io
などのサードパーティーソースからのコンテナーのセキュリティーまたは信頼性を検証しません。Image-Naming Conventions の章も参照してください。
Red Hat レジストリー以外の場所からイメージを取得する場合は、docker pull
を使用しないでください。可能な場合は、docker load
および docker save
を使用します。tarball で docker load
および docker save
を使用してから、イメージを確認することができます。
docker pull
の代わりに docker load
および docker save
を使用する理由。Docker 負荷
および docker save
は、システムをサードパーティーレジストリーに公開することで導入されたセキュリティー脆弱性を回避する方法を提供します。これは、docker pull
を実行すると発生する可能性があります。
docker pull を使用する場合のコンテナーの証明および注意上の注意に関する詳しい情報は、docker pull
を 開始する前に Red Hat のセキュリティーブログ を参照してください。
- docker pull
docker pull の基本的な形式は $ sudo docker pull repo/image:tag
で、repo
と tag
は任意です。リポジトリー
および タグ
が指定されていない場合、docker は docker.io
レジストリーでイメージの検索を試行します。このため、常にイメージをプルするレジストリーに名前を付けることが推奨されます。レジストリーが指定されていない場合、docker は docker.io
レジストリーでイメージの検索を試行します。タグが指定されていない場合、docker はデフォルトで最新のイメージをプルしようとします。
- Docker の負荷
docker 負荷の基本的な形式は、$ sudo docker load -i input.tar
です。input.tar
は、ローカルコンテナーレジストリーに読み込まれる tar イメージです。-i
はオプションであり、input.tar
ファイル名は任意です。-i
もファイル名も指定されていない場合、docker load
は STDIN の tar データを想定します。
- docker save
docker save の基本的な形式は $ sudo docker save -o output.tar
です。output.tar
は、ローカルコンテナーレジストリーに読み込まれる tar イメージです。-o
はオプションであり、output.tar
ファイル名は任意です。-o
もファイル名も指定されていない場合、docker save
はコンテナーデータを STDOUT に出力します。