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 サービスの更新