[和訳] Dockerアプリケーションパッケージでアプリを手軽に統合しよう #docker
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
本稿は Making Application Collaboration Easier with Docker Application Packages (2018/7/16) の和訳です。
実験的ツールであるDockerアプリケーションパッケージに関する最初のブログ記事で、Garethは新しいオープンソースのdocker-appを使用し、メタデータと個別の設定を追加するComposeファイルをどのように拡張できるかを解説しました。
アプリケーションパッケージを作成する方法を知った今、それをどのように共有しますか? もちろん、Docker HubやDocker Enterprise (Docker EE)のようなDockerレジストリソリューションを使用しましょう! docker-appの最新リリースでの例を見てみましょう。これは hello.dockerapp という名前のシンプルな単一ファイル形式のアプリケーションパッケージです:
# このセクションはアプリのメタデータを含みます。
version: 0.1.0
name: hello
description: "A simple HTTP echo server"
maintainers:
- name: Chris Crone
email: someone@example.com
targets:
swarm: true
kubernetes: true
ーー
# このセクションはアプリのサービスを記述するDocker Composeファイルを含みます。
version: '3.6'
services:
hello:
image: hashicorp/http-echo:${version}
command: ["-text", "${text}"]
ports:
- ${port}:5678
ーー
# このセクションはアプリの設定のデフォルト値を含みます。
port: 5678
text: hello development
version: latest
このアプリケーションパッケージは、saveコマンドを使用してDockerイメージとして保存できます:
$ docker-app save
Saved application as image: hello.dockerapp:0.1.0
前記の出力でご覧いただいたように、このアプリケーションは単にDockerイメージにすぎません。パッケージをイメージとして保存したことを確認するには、イメージとして保存しているアプリケーションパッケージを一覧表示します:
$ docker image ls --filter=label=com.docker.application
REPOSITORY TAG IMAGE ID CREATED SIZE
hello.dockerapp 0.1.0 211d7b50537b 8 minutes ago 534B
イメージのバージョンは、パッケージのメタデータで指定したバージョンと一致していることに注目しましょう。docker-appには、イメージとして保存したすべてのアプリケーションを一覧表示するヘルパーもあります:
$ docker-app ls
REPOSITORY TAG IMAGE ID CREATED SIZE
hello.dockerapp 0.1.0 211d7b50537b 8 minutes ago 534B
イメージとして保存したアプリケーションパッケージは、他のパッケージタイプと同じように確認できます:
$ cd /tmp
$ docker-app inspect hello.dockerapp:0.1.0
hello 0.1.0
Maintained by: Chris Crone <someone@example.com>
A simple HTTP echo server
Setting Default
ーーーー ーーー
port 5678
text hello development
version latest
このアプリケーションパッケージはイメージとして保存するため、Docker HubまたはDocker EEなどのプライベートDockerレジストリを使用して共有することができます:
$ docker-app push --namespace ccrone
The push refers to repository [docker.io/ccrone/hello.dockerapp]
c3dd6b98b5be: Pushed
0.1.0: digest: sha256:0a94283fda704dcd316c600fb850783803d472384fff1a4a4c4c94c062dab696
size: 524
パッケージがDocker Hub上にあるので、他の人がパッケージを簡単に利用できます。たとえば、単一ファイルまたはディレクトリ形式と同じように、パッケージを作成またはデプロイできます:
$ docker-app render ccrone/hello.dockerapp
version: "3.6"
services:
hello:
command:
- -text
- hello development
image: hashicorp/http-echo:latest
ports:
- mode: ingress
target: 5678
published: 5678
protocol: tcp
現在の状況は?
アプリケーションパッケージと docker-app の作業は実験段階です。皆さんのフィードバックを得るために早めにリリースしました。https://github.com/docker/appでソースコードを閲覧するか、docker-appをhttps://github.com/docker/app/releasesからダウンロードしてください。
次なるステップ:
- docker-appをダウンロードしてください:https://github.com/docker/app/releasess
- コミュニティのSlackチャンネル #docker-appまたはGitHubのIssuesにフィードバックをお寄せください。