CL LAB

HOME > CL LAB > [和訳] Dockerアプリケーションパッケージでアプリを手軽に統合しよう #docker

[和訳] Dockerアプリケーションパッケージでアプリを手軽に統合しよう #docker

 ★ 2

本稿は 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からダウンロードしてください。

次なるステップ:

CL LAB Mail Magazine

CL LABの情報を逃さずチェックしよう!

メールアドレスを登録すると記事が投稿されるとメールで通知します。

メールアドレス: 登録

※登録後メールに記載しているリンクをクリックして認証してください。

Related post

Docker社公認トレーニングコース