LoginSignup
36
34

More than 5 years have passed since last update.

Docker 1.8 リリースのまとめ

Posted at

概要

Docker 1.8 と関連ツール類の最新バージョンがリリースされたのでまとめてみます。対象は以下のものです。

  • Docker Engine 1.8
  • Docker Toolbx
  • Docker Registry 2.1
  • オーケストレーションツール(Compose, Swarm, Machine)

Docker Engine 1.8

Docker イメージに対するセキュリティ機能の Docker Content Trust(DCT) が目玉で、その他ボリューム周りやログ周りなどに更新が入っている。なお、1.8 にはバグがあり、すぐに1.8.1 がリリースされている。

Docker Content Trust(DCT)

Docker イメージを「なりすまし」と「改ざん」から保護するセキュリティ機能で、以下から構成される。

  • Docker イメージへ発行者のデジタル署名を付ける
  • イメージの利用時(pull など)に「発行者」と「イメージが改ざんされていないこと」を検証する

DCT はそれ用の新しいコマンドが追加されたわけではなく、Docker クライアントの push, build, create, pull, run コマンドに対して自動で機能する。

  • push, build - 自動で鍵の生成やイメージが署名が行われる
  • create, pull, run - 自動でイメージの署名が検証される

DCT はデフォルトでは無効になっており、環境変数 DOCKER_CONTENT_TRUST をセットすると使えるようになるようだが、自分の環境(CentOS7.1 + Docker 1.8.1) ではまだ動作させることができていない。

# DCT を有効化する
export DOCKER_CONTENT_TRUST=1

# Official なイメージを Pull してみる
# エラーになって pull できない(本来なら署名の検証が行われて、問題無ければ pull 出来るはず)
$ docker pull centos:latest
no trust data available for remote repository

# 自分で作ったイメージを push してみる
# エラーになって push できない(本来なら、署名を付けるステップに進むはず)
$ docker push arturias/trusttest:latest
(中略)
Signing and pushing trust metadata
ERRO[0007] Could not publish Repository: invalid character '<' looking for beginning of value
no trust data available for remote repository

なお、DCT は Notary というコンテンツの発行や検証のためのユーティリティを使って開発されており、さらに Notary は The Update Framework (TUF) を利用して作られている。

ボリュームプラグインの安定板

Docker のボリュームとして、3rd パーティ製のストレージシステムを使用できる機能。Docker Engine 1.7 で Experimental として導入されたが 1.8 で安定板になった。Blockbridge, Ceph, ClusterHQ, EMC, Portworx 用のプラグインが利用可能。

Logging Drivers のプラグインの追加

Docker Engine 1.6 で導入されたログのプラグイン機構(Logging Driver)では、コンテナのログを syslogd などに転送できるようになったが、Docker Engine 1.8 でプラグインが追加されて GELF, Fluentd にログを転送できるようになった。

その他

ホストからコンテナ内へのファイルコピー

以前のバージョンでは、docker cp で「コンテナからホスト」へファイルコピーはできたが、「ホストからコンテナ」へファイルがコピーできるようになった。

docker cp ./test.txt ContainerName:/tmp/test.txt

Docker デーモンの起動方法

以前は Docker デーモンを "docker -d" というコマンドラインで起動していたが、"docker daemon" で起動するようになった。これにより、docker コマンドのオプションが、クライアント用なのかデーモン用なのか分かりやすくなった。

docker ps コマンドの出力のカスタマイズ

docker ps コマンドを出力を --format でカスタマイズできるようになった。以下は、「コンテナID、イメージ名、ポート番号」を出力する例:

$ docker ps --format "{{.ID}} : {{.Image}} : {{.Ports}}"
7e7c64c66a13 : mongo : 27017/tcp
7bc088b5b664 : nginx : 80/tcp, 443/tcp

Docker クライアントの設定

Docker クライアントの設定ファイル類が ~/.docker に置かれるようになった。DCTで使われるキーもこの場所に置かれる。

Docker Toolbox

Mac や Windows 上で簡単に Docker 環境を構築するためのツールで、今まで使われていた Boot2Docker を置き換えるもの。

次のコンポーネントがインストールされて、すぐに Docker が使えるように設定される。
* Docker クライアント
* Docker Machine
* Docker Compose (Mac の場合のみ)
* Docker Kitematic
* VirtualBox

以下、Windows 8.1 に Docker Toolbox をインストールしてみた際の画像です。

【インストーラー】
ToolBox01.PNG

【インストーラー:コンポーネントの設定】
ToolBox02.PNG

【インストール後にデスクトップに作成されるアイコン】
ToolBox03.PNG

【Docker Quickstart Terminal を起動したところ】
ToolBox04.PNG

【Kitematic を起動したところ】
ToolBox05.PNG

【Kitematic からコンテナの起動が可能】
ToolBox06.PNG

Docker Registry 2.1

イメージの pull の高速化の他、いくつかの新機能が追加されている。

  • API 経由でのリポジトリの列挙
  • Docker Registry のイメージ保存場所として今までは AWS S3 と Azure が使えたが、今回 OpenStack Swift、Ceph Rados、Aliyun OSS が追加された。

オーケストレーションツール(Compose, Swarm, Machine)

  • Compose 1.4
    コンテナの停止・開始の高速化、container_name オプションによるコンテナ名の指定など。
  • Swarm 0.4
    ビルトインのスケジューラの改善(イメージの pull に失敗したときに、そのイメージを持っているホストにコンテナを配備する)、Mesos との統合など。
  • Machine 0.4
    Docker Engine が使用する HTTP プロキシの設定をサポート、など。
36
34
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
36
34