docker service create

説明

  • 【API 1.24+】このコマンドを使うには、クライアントとデーモン API の両方が、少なくとも 1.25 の必要があります。クライアントとデーモン API のバージョンを調べるには、 docker version コマンドを使います。

  • 【Swarm】このコマンドは Swarm オーケストレータと動作します。

使い方

$ docker service create [OPTIONS] IMAGE [COMMAND] [ARG...]

補足説明

Creates a service as described by the specified parameters.

注釈

これはクラスタ管理コマンドであり、 swarm manager ノードで実行する必要があります。manager と worker について学ぶには、ドキュメント内の Swarm モードのセクション を参照ください。

コマンドの使用例は、以下の 使用例のセクション をご覧ください。

オプション

名前, 省略形

デフォルト

説明

--cap-add

【API 1.41+】Linux ケーパビリティを追加

--cap-drop

【API 1.41+】Linux ケーパビリティを削除

--config

【API 1.30+】サービスに対して適用する設定を指定

--constraint

場所の 制約(constraint)

--container-label

コンテナのラベル

--credentail-spec

【API 1.29+】マネージド・サービス・アカウントの証明書設定(Windows のみ)

--detach , -d

【API 1.29+】サービスとのやりとりを待たず、直ちに出る

--dns

【API 1.25+】任意の DNS サービスを指定

--dns

【API 1.25+】任意の DNS サービスを指定

--dns-option

【API 1.25+】DNS オプションを指定

--dns-search

【API 1.25+】任意の DNS 検索ドメインを指定

--endpoint-mode

vip

エンドポイント・モードを指定( vipdnsrr

--env-file

環境変数をファイルから読み込む

--generic-resource

ユーザ定義リソース

--group

【API 1.25+】コンテナに対する追加のユーザグループを指定

--health-cmd

【API 1.25+】正常性を確認するために実行するコマンド

--health-interval

【API 1.25+】確認を実行する間隔( ms|s|m|h)(デフォルト 0s)

--health-retries

【API 1.25+】障害と報告するために必要な、失敗を繰り返す回数

--health-start-period

【API 1.29+】 正常性確認をカウントダウン開始するまで、コンテナ初期化まで待つ期間を指定(ms|s|m|h)(デフォルト 0s)

--health-timeout

【API 1.25+】実行の確認を許容する最長時間(ms|s|m|h)(デフォルト 0s)

--host

【API 1.25+】任意のホストから IP アドレスのマッピングを指定(ホスト:ip)

--hostname

【API 1.25+】コンテナのホスト名

--init

【API 1.25+】コンテナ内で 初回のプロセス(init) として実行し、シグナルを転送し、プロセスに渡す

--isolation

【API 1.35+】コンテナ分離(隔離)技術

--label , -l

サービスのラベル

--limit-cpu

CPU 制限

--memory

メモリ制限

--limit-pids

【API 1.41+】【Swarm】プロセス数の上限を制限(デフォルト 0 = 無制限)

--log-driver

サービス用のログ記録ドライバ

--log-opt

ログ記録ドライバのオプション

--max-concurrent

【API 1.41+】並列に実行するジョブタスク数(デフォルトは --replicas と同じ)

--mode

replicated

サービスモード( replicated、global、replicated-job、global-job)

--mount

サービスに対してファイルシステム・マウントをアタッチ

--name

サービス名

--network

接続するネットワーク

--no-healthcheck

【API 1.25+】コンテナに指定されている HEATHCHECK を無効化

--no-resolve-image

【API 1.30+】イメージのダイジェスト値とサポートしているプラットフォームを、レジストリに問い合わせしない

--placement-perf

【API 1.28+】placement設定を追加

--publish , -p

ノードのポートとして公開するポート

--quiet , -q

進捗の表示を抑制

--read-only

【API 1.28+】コンテナのルート・ファイルシステムを読み込み専用としてマウント

--replicas

タスク数

--replicas-max-per-node

【API 1.40+】ノードごとの最大タスク(デフォルトは 0 = 無制限)

--reservice-cpu

CPU 予約

--reserve-memory

メモリ予約

--restart-condition

状況が発生した時に再起動( none | on-failure | any )(デフォルトは any

--restart-delay

再起動を試みるまでの遅延( ns | us | ms | s | m | h )(デフォルト 5s )

--restart-max-attempts

再起動を断念するまで試す数

--restart-window

再起動ポリシーを評価するために使う期間( ns | us | ms | s | m | h

--rollback-delay

【API 1.28+】タスクをロールバックするまでの遅延( ns | us | ms | s | m | h )(デフォルト 0s )

--rollback-failure-action

【API 1.28+】ロールバック失敗時の処理( pause | continue )(デフォルト pause

--rollback-max-failure-ratio

【API 1.28+】ロールバックを許容する 障害率(failure rate) (デフォルト 0)

--rollback-monitor

【API 1.28+】各タスクのロールバックが失敗するまで監視する時間( ns | us | ms | s | m | h )(デフォルト 5s )

--rollback-order

【API 1.29+】ロールバック順番( start-first | stop-first )(デフォルト stop-first

--rollback-parallelism

1

【API 1.28+】同時にロールバックする最大タスク数( 0 はロールバックを一斉実施)

--secret

【API 1.25+】 サービス側に露出するシークレットを指定

--stop-grace-period

コンテナを強制停止するまで待機する時間( ns | us | ms | s | m | h )(デフォルト 10s )

--stop-signal

【API 1.28+】コンテナの停止シグナル

--sysctl

【API 1.40+】sysctl オプション

--tty , -t

疑似ターミナルを割り当て

--ulimit

【API 1.41+】 ulimit オプション

--update-delay

更新間の遅延( ns | us | ms | s | m | h )(デフォルト 0s )

--update-failure-action

更新失敗時の処理( pause | continue | rollback )(デフォルト pause

--update-max-failure-ratio

【API 1.25+】許容する 更新失敗率(failure rate) (デフォルト 0)

--update-monitor

【API 1.25+】各タスクの更新が失敗するまで監視する時間( ns | us | ms | s | m | h )(デフォルト 5s )

--update-order

【API 1.29+】更新順番( start-first | stop-first )(デフォルト stop-first

--update-parallelism

1

同時に更新する最大タスク数( 0 は更新を一斉実施)

--user , -u

ユーザ名か UID(形式: <name|uid>[:<group|gid>] )

--with-registry-auth

swarm エージェントに対して送信する、レジストリ認証情報の詳細

--workdir , -w

コンテナ内の作業ディレクトリ

使用例

サービスの作成

$ docker service create --name redis redis:3.0.6

dmu1ept4cxcfe8k8lhtux3ro3

$ docker service create --mode global --name redis2 redis:3.0.6

a8q9dasaafudfs8q8w32udass

$ docker service ls

ID            NAME    MODE        REPLICAS  IMAGE
dmu1ept4cxcf  redis   replicated  1/1       redis:3.0.6
a8q9dasaafud  redis2  global      1/1       redis:3.0.6

プライベート・レジストリ上にあるイメージを使ってサービスを作成

イメージがログインを必要とするプライベート・レジストリ上にある場合、 docker service create--with-registry-auth フラグを使い、その後にログインします。イメージが registry.example.com というプライベート・レジストリに保管されている場合、次のようなコマンドを実行します。

$ docker login registry.example.com

$ docker service  create \
  --with-registry-auth \
  --name my_service \
  registry.example.com/acme/my_image:latest

これは、ローカルのクライアントからサービスがデプロイされる swam ノードに対し、暗号化 WAL ログを使ってログイントークンを渡します。この情報を使い、ノードはレジストリにログインし、イメージを取得できるようになります。

(以下 ToDo)

親コマンド

コマンド

説明

docker service

サービスを管理

関連コマンド

コマンド

説明

docker service create

新しいサービスを作成

docker service inspect

1つまたは複数サービスの詳細情報を表示

docker service logs

サービスかタスクのログを取得

docker service ls

サービス一覧表示

docker service ps

1つまたは複数タスクの一覧表示

docker service rm

1つまたは複数サービスの削除

docker service rollback

サービス設定の変更を 復帰(rollback)

docker service scale

1つまたは複数サービスを スケール(scale)

docker service update

サービスの更新