create

新しいコンテナを作成します。

使い方: docker create [オプション] イメージ [コマンド][引数...]新しいコンテナを作成 -a, --attach=[] STDIN、STDOUT、STDERR にアタッチする --add-host=[] ホストから IP アドレスのマッピングをカスタマイズして追加 (host:ip) --blkio-weight=0 ブロック IO ウエイト (相対ウエイト) --blkio-weight-device=[] ブロック IO ウエイト (相対デバイス・ウエイト。書式: `デバイス名:ウエイト`) --cpu-shares=0 CPU 共有 (相対ウエイト) --cap-add=[] Linux ケーパビリティの追加 --cap-drop=[] Linux ケーパビリティの削除 --cgroup-parent="" コンテナ用のオプション親 cgroup を指定 --cidfile="" コンテナ ID をファイルに書き出し --cpu-period=0 CPU CFS (Completely Fair Scheduler) ペイロードの制限 --cpu-quota=0 CPU CFS (Completely Fair Scheduler) クォータの制限 --cpuset-cpus="" 実行を許可する CPU (0-3, 0,1) --cpuset-mems="" 実行を許可するメモリ必要量 (0-3, 0,1) --device=[] ホスト・デバイスをコンテナに追加 --device-read-bps=[] デバイスからの読み込みレート (バイト/秒) を制限 --device-read-iops=[] デバイスからの読み込みレート (IO/秒) を制限 --device-write-bps=[] デバイスへの書き込みレート (バイト/秒) を制限 (例: --device-write-bps=/dev/sda:1mb) --device-write-iops=[] デバイスへの書き込みレート (IO/秒) を制限 (例: --device-write-iops=/dev/sda:1000) --disable-content-trust=true イメージの認証をスキップ --dns=[] カスタム DNS サーバの指定 --dns-opt=[] カスタム DNS オプションの指定 --dns-search=[] カスタム DNS 検索ドメインの指定 -e, --env=[] 環境変数を指定 --entrypoint="" イメージのデフォルト ENTRYPOINT を上書き --env-file=[] ファイルから環境変数を読み込み --expose=[] ポートまたはポート範囲を露出 --group-add=[] 参加するグループを追加 -h, --hostname="" コンテナのホスト名 --help 使い方の表示 -i, --interactive アタッチしていなくても STDIN を開き続ける --ip="" コンテナの IPv4 アドレス (例: 172.30.100.104) --ip6="" コンテナの IPv6 アドレス (例: 2001:db8::33) --ipc="" 使用する IPC 名前空間 --isolation="" コンテナの分離(独立)技術 --kernel-memory="" Kernel メモリ上限 -l, --label=[] コンテナにメタデータを指定 (例: --label=com.example.key=value) --label-file=[] 行ごとにラベルを記述したファイルを読み込み --link=[] 他のコンテナへのリンクを追加 --log-driver="" コンテナ用のログ記録ドライバを追加 --log-opt=[] ログドライバのオプションを指定 -m, --memory="" メモリ上限 --mac-address="" コンテナの MAC アドレス (例: 92:d0:c6:0a:29:33) --memory-reservation="" メモリのソフト上限 --memory-swap="" 整数値の指定はメモリにスワップ値を追加。-1は無制限スワップを有効化 --memory-swappiness="" コンテナ用メモリのスワップ程度を調整。整数値の 0 から 100 で指定 --name="" コンテナに名前を割り当て --net="bridge" : コンテナをネットワークに接続 'bridge': docker ブリッジ上でコンテナ用に新しいネットワーク・スタックを作成 'none': コンテナにネットワーク機能を付けない 'container:<name|id>': 他のコンテナ用ネットワーク・スタックを再利用 'host': コンテナ内でホスト側ネットワーク・スタックを使用 'NETWORK': 「docker network create」コマンドでユーザ作成したネットワークを使用 --net-alias=[] コンテナにネットワーク内部用のエイリアスを追加 --oom-kill-disable コンテナの OOM Killer を無効化するかどうか指定 --oom-score-adj=0 コンテナに対してホスト側の OOM 優先度を設定 ( -1000 ~ 1000 を指定) -P, --publish-all 全ての露出ポートをランダムならポートに公開 -p, --publish=[] コンテナのポートをホスト側に公開 --pid="" 使用する PID 名前空間 --pids-limit=-1 コンテナの pids 制限を調整 (kernel 4.3 以上は -1 で無制限に設定) --privileged このコンテナに対して拡張権限を与える --read-only コンテナのルート・ファイルシステムを読み込み専用としてマウント --restart="no" 再起動ポリシー (no, on-failure[:max-retry], always, unless-stopped) --security-opt=[] セキュリティ・オプション --stop-signal="SIGTERM" コンテナの停止シグナル --shm-size=[]`/dev/shm` のサイズ。書式は `<数値><単位>`. `数値` は必ず `0` より大きい。単位はオプションで `b`(bytes)`k`(kilobytes)`m`(megabytes)`g`(gigabytes) を指定可能。単位を指定しなければ、システムは bytes を使う。数値を指定しなければ、システムは `64m` を使う -t, --tty 疑似ターミナル (pseudo-TTY) を割り当て -u, --user="" ユーザ名または UID --userns="" コンテナのユーザ名前空間 'host': Docker ホストで使うユーザ名前空間 '': Docker デーモンのユーザ名前空間を指定するには `--userns-remap` オプションを使う --ulimit=[] Ulimit オプション --uts="" 使用する UTS 名前空間 -v, --volume=[ホスト側ソース:]コンテナ側送信先[:<オプション>] ボリュームを拘束マウント。カンマ区切りで指定 `オプション`[rw|ro], [z|Z], [[r]shared|[r]slave|[r]private], [nocopy]'ホスト側ソース' は絶対パスまたは名前の値 --volume-driver="" コンテナのボリューム・ドライバ --volumes-from=[] 指定したコンテナからボリュームをマウント -w, --workdir="" コンテナ内の作業用ディレクトリを指定

dockercreate コマンドは、特定のイメージ上に書き込み可能なコンテナ・レイヤ(層)を作成し、測定のコマンドを実行する準備をします。それから、コンテナ ID を STDOUT (標準出力)に表示します。これは開始したことが無いコンテナに対して dockerrun-d する時も同様です。それから、 dockerstart<コンテナID> コマンドを使って、いつてもコンテナを実行できます。

コンテナが必要な時に直ちに実行できるよう、事前に設定を済ませて使えるように準備したい場合に役立ちます。新しいコンテナ作成時の初期状態を指定しました。

より詳細に関しては run セクションと Docker run リファレンス をご覧ください。

$ docker create -t -i fedora bash
6d8af538ec541dd581ebc2a24153a28329acb5268abe5ef868c1f1a261221752
$ docker start -a -i 6d8af538ec5
bash-4.2#

バージョン 1.4.0 以降では、 dockercreate の段階で( dockerrun も同様 )コンテナのボリュームが初期化されます。例えば、 データ ボリュームコンテナを create したら、他のコンテナからも利用可能になります。

$ docker create -v /data --name data ubuntu
240633dfbb98128fa77473d3d9018f6123b99c454b3251427ae190a7d951ad57
$ docker run --rm --volumes-from data ubuntu ls -la /data
total 8drwxr-xr-x 2 root root 4096 Dec 504:10 .
drwxr-xr-x 48 root root 4096 Dec 504:11 ..

同様に、 ホスト側のディレクトリをバインドするボリューム・コンテナを作成したら、次に処理するコンテナからも利用可能になります。

$ docker create -v /home/docker:/docker --name docker ubuntu
9aa88c08f319cd1e4515c3c46b0de7cc9aa75e878357b1e96f91e2c773029f03
$ docker run --rm --volumes-from docker ubuntu ls -la /docker
total 20drwxr-sr-x 51000 staff 180 Dec 504:00 .
drwxr-xr-x 48 root root 4096 Dec 504:13 ..
-rw-rw-r-- 11000 staff 3833 Dec 504:01 .ash_history
-rw-r--r-- 11000 staff 446 Nov 2811:51 .ashrc
-rw-r--r-- 11000 staff 25 Dec 504:00 .gitconfig
drwxr-sr-x 31000 staff 60 Dec 103:28 .local
-rw-r--r-- 11000 staff 920 Nov 2811:51 .profile
drwx--S--- 21000 staff 460 Dec 500:51 .ssh
drwxr-xr-x 321000 staff 1140 Dec 504:01 docker

コンテナごとにストレージ・ドライバを指定します。

$ docker create -it --storage-opt size=120G fedora /bin/bash

この容量(size)はコンテナのルート・ファイルシステムの容量を作成時に 120GB と指定しています。ユーザはデフォルトのベース・ファイルシステムより小さな容量を指定できません。

コンテナの分離技術を指定(--isolation)

このオプションは Docker コンテナを Window 上で使う状況で役立ちます。 --isolation=<値> オプションはコンテナの分離技術を指定します。 Linux 上では、サポートしているオプションは Linux 名前空間を使う default のみです。Microsoft Windows 上では、以下の値を指定できます。

説明

default

Docker デーモンの --exec-opt で指定した値を使います。 daemon に分離技術を指定しなければ、Microsoft Windows は Windows Server が動いていれば process を使います。あるいは Windows クライアントの場合は hyperv を使います。

process

名前空間の分離のみです。

hyperv

Hyper-V ハイパーバイザのパーティションをベースとした分離です。

--isolation フラグに値を指定しなければ、 --isolation="default" を指定したのと同じです。