最近、dockerを勉強しています。
Dockerのコマンドって結構あって、覚えるの大変だなって思って、まとめました。
コンテナ生成/起動
$ docker container run [オプション] イメージ名[:タグ名] [引数]
オプション | 説明 |
---|---|
--attach, -a | 標準入力/標準出力/標準エラー出力にアタッチ |
--cidfile | コンテナIDをファイルに出力する |
--detach, -d | コンテナを生成し、バッググラウンドで実行する |
--interactive, -l | コンテナの標準入力を開く |
--tty, -t | 端末デバイスを使う |
コンテナを生成し、コンソールで対話的にコマンドを実行できます。
$ docker container run -it --name "test" centos /bin/bash
コンテナのバックグラウンド実行
$ docker container run [実行オプション] イメージ名[:タグ名] [引数]
オプション「-d」をつけると、バックグラウンド実行できる。
オプション | 説明 |
---|---|
--detach, -d | コンテナを生成し、バッググラウンドで実行する |
--user, -u | ユーザー名を指定 |
--restart=[リスタート条件] | コマンドの実行結果によって再起動を行う |
--rm | コマンド実行完了後にコンテナを自動で削除 |
リスタート条件
設定値 | 説明 |
---|---|
no | 再起動しない |
on-failure | 終了ステータスが0でない時に再起動する |
on-failure:回数n | 終了ステータスが0でない時にn回再起動する |
always | 常に再起動する |
unless-stopped | 直近のコンテナが停止状態でなければ、常に再起動する |
$ docker container run -d centos /bin/ping localhost
コンテナを生成をし、localhostに対してpingコマンドを実行しています。
バックグラウンドで実行することをデタッチモードと呼びます。
対話式では、コマンドの結果がコンソール上に表示されるが、バックグラウンドでは起動したコンテナのコンテナIDが表示される。
バッググラウンドで実行されているかの確認
$ docker container logs
コンテナのネットワーク設定
$ docker container run [ネットワークオプション] イメージ名[:タグ名] [引数]
オプション | 説明 |
---|---|
--add-host=[ホスト名:IPアドレス] | コンテナの/etc/hostsにホスト名とIPアドレスを定義する |
--dns=[IPアドレス] | コンテナ用のDNSサーバのIPアドレス指定 |
--expose=[IPアドレス] | 指定したレンジのポート番号を割り当てる |
--mac-address=[MACアドレス] | コンテナのMACアドレスを指定する |
--net=[ネットワーク名] | コンテナのネットワークを指定する |
--hostname, -h | コンテナ自身のホスト名を指定する |
--publish, -p[ホストのポート番号]:[コンテナのポート番号] | ホストとコンテナのポートマッピング |
--publish-all, -P | ホストの任意のポートをコンテナに割り当てる |
netオプションで指定する値
設定値 | 説明 |
---|---|
brige | ブリッジ接続を使う |
none | ネットワークに接続しない |
containe:[name | id] |
host | コンテナがホストOSのネットワークを使う |
NETWORK | ユーザー定義ネットワークを使う |
ポートマッピング
$ docker container run -d -p 8080:80 nginx
ホストの8080ポートにアクセスすると、コンテナ上で動作するNginx(80番ポート)のサービスにアクセスできます。
DNSサーバを設定する
$ docker container run -d --dns IPアドレス nginx
などなど設定ができます。
リソースを指定してコンテナを生成/実行
$ docker container run [リソースオプション] イメージ名[:タグ名] [引数]
オプション | 説明 |
---|---|
--cpu-shares,-c | CPUの使用の配分(比率) |
--memory, -m | 使用するメモリを制御して実行する |
--volume=[ホストのディレクトリ]:[コンテナのディレクトリ], -v | ホストとコンテナのディレクトを共有 |
コンテナを起動する時CPUとメモリのリソース利用を制限することができます。
デフォルトのcpu-sharesは、1024です。
コンテナの生成/起動する環境を指定
$ docker container run [環境設定オプション] イメージ名[:タグ名] [引数]
オプション | 説明 |
---|---|
--env, -e | 環境変数を設定する |
--env-file=[ファイル名] | 環境変数をファイルから設定する |
--read-only=[true or false] | コンテナのファイルシステムを読み込み専用にする |
--workdir=[パス],-w | コンテナの作業ディレクトリを指定する |
--user=[ユーザー名],-u | ユーザー名またはUIDを設定する |
稼働コンテナの一覧表示
$ docker container ls [オプション]
オプション | 説明 |
---|---|
--env, -e | 環境変数を設定する |
--env-file=[ファイル名] | 環境変数をファイルから設定する |
--read-only=[true or false] | コンテナのファイルシステムを読み込み専用にする |
--workdir=[パス],-w | コンテナの作業ディレクトリを指定する |
--user=[ユーザー名],-u | ユーザー名またはUIDを設定する |
--formatオプションを指定して、出力形式を変更することも可能。
コンテナの稼働確認
$ docker container stats [コンテナ識別子]
コンテナの起動
$ docker container start [コンテナ識別子]
オプション | 説明 |
---|---|
--attach, -a | 標準出力/標準エラー出力を開く |
--interactive, -l | コンテナの標準入力を開く |
コンテナの停止
$ docker container stop [オプション] コンテナ識別子 [コンテナ識別子]
オプション | 説明 |
---|---|
--time, -t | コンテナの停止時間を指定する |
コンテナの再起動
$ docker container restart [オプション] コンテナ識別子 [コンテナ識別子]
オプション | 説明 |
---|---|
--time, -t | コンテナの停止時間を指定する |
コンテナの削除
$ docker container rm [オプション] コンテナ識別子 [コンテナ識別子]
オプション | 説明 |
---|---|
--force, -f | 起動中のコンテナを強制的に削除する |
--valumes, -v | 割り当てたボリューム削除 |
コンテナの中断/再開
中断
$ docker container pause コンテナ識別子
再開
$ docker container uppause コンテナ識別子