Docker 1.10:新しい作成ファイル、セキュリティの向上、ネットワークなど!

投稿日 Feb 4, 2016

Docker 1.10 は、皆さんが求めていたものがぎっしり詰まったものになりました。

Docker Compose を使用して複雑な分散アプリを定義して実行することがはるかに簡単になりました。 Compose がコンテナのオーケストレーションにもたらした機能は、ネットワークとボリュームの設定に使用できるようになりました。 開発用マシンでは、複数のネットワーク層と複雑なストレージ構成を使用してアプリをセットアップし、運用環境でのセットアップ方法を複製できます。 その後、開発から同じ構成を取得し、それを使用して、CI、ステージング、および運用環境までアプリを実行できます。 詳細については、新しい Compose ファイルに関するブログ投稿をご覧ください。

いつものように、このリリースにはたくさんのセキュリティ更新プログラムがあります。 システムユーザーを分離するためのユーザー名前空間、システムコールをフィルタリングするためのseccompプロファイル、エンジン機能へのアクセスを制限するための承認プラグインシステムなど、あなたが求めていたすべての大きな機能が使用できるようになりました。

もう 1 つの大きなセキュリティ強化は、Git コミットがコミット内のコンテンツを表すのと同様に、イメージ ID がイメージ内のコンテンツを表すようになったことです。 つまり、その画像の ID を指定するだけで、実行しているコンテンツが期待どおりであることを保証できます。 Engine 1.10 にアップグレードする場合、移行プロセスに時間がかかる可能性があるため、 ダウンタイムを防ぎたい場合は、ドキュメントをお読みください。

ネットワーキングがさらに向上

以前のバージョンの Docker Engine に新しいネットワーク システムを追加しました。 仮想ネットワークを作成してコンテナーをアタッチできるため、アプリケーションに最適なネットワーク トポロジを作成できます。 Compose のサポートに加えて、要望の多かったその他の機能を追加しました。

  • ネットワークでリンクを使用する: リンクはデフォルトのブリッジネットワークではいつものように機能しますが、自分で作成したネットワークでは使用できませんでした。 これに対するサポートが追加され、コンテナ間の関係を定義し、ホスト名を特定のコンテナ内の別の名前にエイリアスできるようになりました(例: --link db:production_postgres)
  • ネットワーク全体のコンテナエイリアス: リンクを使用すると、特定のコンテナのホスト名にエイリアスを付けることができますが、ネットワーク全体で複数のホスト名からコンテナにアクセスできるようにすることもできます。
  • 内部ネットワーク: にフラグ network create を渡 --internal して、ネットワークに出入りするトラフィックを制限します。
  • カスタム IP アドレス: コンテナーを実行またはネットワークに追加するときに、コンテナーにカスタム IP アドレスを割り当てることができるようになりました。
  • 名前解決用の DNS サーバー: ホスト名の検索は、ではなく /etc/hostsDNSサーバーを使用して行われるため、信頼性とスケーラビリティが大幅に向上します。 機能の提案とディスカッションをお読みください。
  • サポートされているすべてのエンジンカーネルバージョンでのマルチホストネットワーク: マルチホストオーバーレイドライバは、古いカーネルバージョン(3.10以降)で動作するようになりました。

エンジン1.10

新しいセキュリティ機能とネットワーク機能とは別に、Engineにはたくさんの新しいものがあります。

  • コンテンツ・アドレス可能なイメージID: イメージ ID は、Git コミットハッシュがコミット内のコンテンツを表すのと同様に、イメージ内のコンテンツを表すようになりました。 つまり、その画像の ID を指定するだけで、実行しているコンテンツが期待どおりであることを保証できます。 これは、エンジン 1.6 の画像ダイジェストの改善です。 既存のイメージの移行プロセスには時間がかかる可能性があるため、 ダウンタイムを防ぎたい場合は、ドキュメントを読んでください.
  • より良いイベントストリーム: docker events コマンドとイベントの API エンドポイントが改善され、クリーンアップされました。イベントは、リソースの種類とそのリソースに対して実行されるアクションで一貫して構造化されるようになり、ボリュームとネットワークに対するアクションのイベントが追加されました。 完全な詳細はドキュメントにあります。
  • プッシュ/プルのパフォーマンスと信頼性の向上: レイヤーが並列にプッシュされるようになり、プッシュがはるかに高速になりました(最大3倍高速)。 プルは少し速く、信頼性も高く、合理化されたプロトコルとより優れた再試行およびフォールバックメカニズムを備えています。
  • ライブ・アップデート・コンテナー・リソースの制約: コンテナが使用できるリソースに制限を設定する場合(例: メモリ使用量)、それらを変更するにはコンテナを再起動する必要がありました。 これらのリソース制約は、新しい docker update コマンドを使用してその場で更新できるようになりました。
  • デーモン構成ファイル: ファイルでデーモンオプションを設定し、デーモンを再起動せずにそれらの一部をリロードできるようになったため、たとえば、何も再起動せずに新しいデーモンラベルを設定し、デバッグログを有効にできます。
  • 一時ファイルシステム: フラグを に docker run 渡す --tmpfsことで、一時ファイルシステムを作成するのが本当に簡単になりました。これは、コンテナ内のソフトウェアがディスク上の特定の場所に書き込めると予想される場合に、読み取り専用のルートファイルシステムでコンテナを実行する場合に特に便利です。
  • ディスク I/O の制約: ディスク I/O に制約を設定するためのさまざまなオプションが docker run: --device-read-bps、、、、--device-write-bps、--device-read-iops--device-write-iopsおよび --blkio-weight-deviceに追加されました。
  • Splunk ロギングドライバ: コンテナのログを Splunkログサービスに直接送信します。
  • デーモンを再起動するときに、リンクされたコンテナを正しい順序で起動します。 これはささいなことですが、あなたがそれに遭遇したなら、あなたはそれがどんな頭痛であるかを知っているでしょう。 リンクされたコンテナでデーモンを再起動した場合、リンクされたコンテナがまだ実行されていないと、デーモンの起動に失敗することがありました。 エンジンは、コンテナーを正しい順序で起動しようとします。

完全なリストについては、リリースノートを確認してください。 このリリースでは非推奨になっている機能がいくつかあり、Fedora21とUbuntu15.04のサポートが終了するため、影響を受ける場合は必ずリリースノートを確認してください。 ボリュームプラグインを作成した場合は、 ボリュームプラグインAPIにも注意が必要な変更があります。

このリリースを実現させてくれたすべての人々、特に チャン・ファン、 デニス・グラドキク、 ディマ・ストペル、リロン・レヴィンに感謝します。

開発中に Docker を試す最も簡単な方法は、 Docker Toolbox をインストールすることです。 その他のプラットフォームについては、 ドキュメントのインストール手順を確認してください。

スウォーム1.1

Docker Swarm は、Docker のネイティブ クラスタリングです。 これにより、エンジンのクラスターの管理とデプロイが非常に簡単になります。 Swarm は、Docker アプリケーションとクラスターをデプロイおよび管理するためのオンプレミス ツールである Docker ユニバーサル コントロール プレーンのクラスタリングとスケジューリングの基盤でもあります。

11 月に、Swarm の最初の製品対応バージョンであるバージョン 1.0 を発表しました。 このリリースは段階的な改善であり、特にお客様から要望が寄せられていたいくつかの機能が追加されています。

  • ノードに障害が発生したときにコンテナを再スケジュールします。 ノードに障害が発生した場合、Swarmはオプションで、正常なノードでそのコンテナの再スケジュールを試行して、実行を維持できるようになりました。 これは実験的な機能なので、完全に機能することを期待しないでくださいが、試してみてください。
  • より良いノード管理: Swarmがノードへの接続に失敗した場合、単にあきらめるのではなく、再試行するようになりました。 また、このステータスと docker infoエラーメッセージも表示されます 、デバッグがはるかに簡単になります。 詳細については、機能の提案をご覧ください。

完全なリストについてはリリースノート を、 開始方法についてはドキュメントを確認してください。

そして、スウォームウィークの日付を保存してください–近日公開!

Swarmを初めて使用する場合、または慣れ親しんでいて詳細を知りたい場合は、Swarmウィークを使用して、すべてのSwarm情報を1か所で入手できます。 毎日異なるSwarm関連のトピックを特集します。

#SwarmWeek の通知を受け取るには、ここでサインアップしてください!

マシン0.6

マシンはDocker Toolboxの中心であり、Machine 0.6の大きな焦点は、VirtualBoxで使用してWindowsで実行する際の信頼性を大幅に高めることです。 これにより、Toolboxの使用エクスペリエンスが大幅に向上するはずです。

また、マシンのパワーユーザー向けにいくつかの新機能が追加されました。

  • 「デフォルト」と入力する必要はありません。 コマンドは、名前を指定しない場合に "既定" の VM に対してアクションを実行するようになりました。
  • 新しいプロビジョニング コマンド: これは、プロビジョニングに失敗したホストや設定がドリフトしたホストでプロビジョニングを再実行する場合に便利です。

詳細については、リリースノートを参照してください。 マシンをインストールする最も簡単な方法は、 Docker Toolboxをインストールすることです。 その他のインストール方法については 、ドキュメントで詳しく説明しています。

レジストリ2.3

レジストリ2.3では、パフォーマンスとセキュリティに多くの改善が加えられています。 新しいマニフェスト形式をサポートしており、異なるイメージ間でレイヤーを共有できるため、レジストリに既に存在するレイヤーのプッシュのパフォーマンスが向上します。

こちらの完全なリリースノートを確認し 、インストールまたはアップグレードの方法についてはドキュメントを参照してください。

 

 

 

Docker 1.10 の新機能に関する概要ビデオをご覧ください

 

ドッカー1.10に関するその他のリソース


 

ドッカーについてもっと知る

関連記事