fbpx

[和訳] 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からダウンロードしてください。

次なるステップ:

新規CTA