目次
実行する
docker exec :実行中のコンテナでコマンドを実行します。
文法
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
オプションの説明:
- -d :分離モード: バックグラウンドで実行
- -i :アタッチされていない場合でも STDIN を開いたままにします
- -t :擬似端末を割り当てます
例
コンテナー mynginx の対話モードで、コンテナー内の /root/runoob.sh スクリプトを実行します。
runoob@runoob:~$ docker exec -it mynginx /bin/sh /root/runoob.sh
http://www.runoob.com/
mynginx コンテナーで対話モードでターミナルを開きます。
runoob@runoob:~$ docker exec -i -t mynginx /bin/bash
root@b1a0703e41e7:/#
また、 docker ps -a コマンドを使用して実行中のコンテナーを表示し、コンテナー ID を使用してコンテナーに入ることができます。
すでに実行されているコンテナ ID を表示します。
# docker ps -a
...
9df70f9a0714 openjdk "/usercode/script.sh…"
...
最初の列の 9df70f9a0714 はコンテナー ID です。
exec コマンドを使用して、指定されたコンテナーで bash を実行します。
# docker exec -it 9df70f9a0714 /bin/bash
作成
docker create :コンテナを起動せずに新しいコンテナを作成します
使い方はdocker runと同じです
文法
docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
オプションの説明:
- -a stdin: 標準入出力コンテンツ タイプ、オプションの STDIN/STDOUT/STDERR の 3 つの項目を指定します。
- -d: バックグラウンドでコンテナを実行し、コンテナ ID を返します。
- -i: コンテナーを対話モードで実行します。通常は -t と一緒に使用します。
- -P: ランダム ポート マッピング。コンテナの内部ポートがホストのポートにランダムにマッピングされます。
- -p: ポートマッピングをホスト(ホスト)ポート:コンテナポートの形式で指定します。
- -t: コンテナの擬似入力ターミナルを再割り当てします。通常は -i と一緒に使用されます。
- --name="nginx-lb": コンテナーの名前を指定します。
- --dns 8.8.8.8: コンテナーが使用する DNS サーバーを指定します。これはデフォルトではホストと同じです。
- --dns-search example.com: コンテナーの DNS 検索ドメイン名を指定します。これはデフォルトではホストと同じです。
- -h "mars": コンテナーのホスト名を指定します。
- -e username="ritchie": 環境変数を設定します。
- --env-file=[]: 指定されたファイルから環境変数を読み取ります。
- --cpuset="0-2" または --cpuset="0,1,2": コンテナを指定された CPU にバインドして実行します。
- -m :コンテナーが使用するメモリの最大量を設定します。
- --net="bridge": コンテナのネットワーク接続タイプを指定します。ブリッジ/ホスト/なし/コンテナ: 4 つのタイプをサポートします。
- --link=[]: 別のコンテナへのリンクを追加します。
- --expose=[]: ポートまたはポートのグループを開きます。
- --volume 、 -v: ボリュームをバインドします
例
Docker イメージ nginx:latest を使用してコンテナーを作成し、コンテナーに myrunoob という名前を付けます。
runoob@runoob:~$ docker create --name myrunoob nginx:latest
09b93464c2f75b7b69f83d56a9cfc23ceb50a48a9db7652ee4c27e3e2cb1961f
一時停止/一時停止解除
- docker stop : コンテナ内のすべてのプロセスを一時停止します。
- docker unpause : コンテナ内のすべてのプロセスを再開します。
文法
docker pause CONTAINER [CONTAINER...]
docker unpause CONTAINER [CONTAINER...]
例
データベースコンテナdb01のサービスを一時停止します。
docker pause db01
リカバリ データベース コンテナ db01 がサービスされます。
docker unpause db01
rm
docker rm : 1 つ以上のコンテナを削除します。
文法
docker rm [OPTIONS] CONTAINER [CONTAINER...]
オプションの説明:
- -f : SIGKILL シグナルを介して実行中のコンテナを強制的に強制終了します。
- -l :コンテナ自体ではなく、コンテナ間のネットワーク接続を削除します。
- -v :コンテナーに関連付けられたボリュームを削除します。
例
コンテナ db01、db02 を強制的に削除します。
docker rm -f db01 db02
コンテナー nginx01 からコンテナー db01 への接続を削除します。接続名は db です。
docker rm -l db
コンテナー nginx01 を削除し、コンテナーにマウントされているデータ ボリュームを削除します。
docker rm -v nginx01
停止したコンテナをすべて削除します。
docker rm $(docker ps -a -q)
殺す
docker kill : 実行中のコンテナを強制終了します。
文法
docker kill [OPTIONS] CONTAINER [CONTAINER...]
オプションの説明:
-
-s :コンテナにシグナルを送信します
例
実行中のコンテナ mynginx を強制終了します。
runoob@runoob:~$ docker kill -s KILL mynginx
mynginx
開始/停止/再起動
- docker start : 停止している 1 つ以上のコンテナを起動します
- docker stop : 実行中のコンテナを停止します
- docker restart : コンテナを再起動します
文法
docker start [OPTIONS] CONTAINER [CONTAINER...]
docker stop [OPTIONS] CONTAINER [CONTAINER...]
docker restart [OPTIONS] CONTAINER [CONTAINER...]
例
停止したコンテナmyrunoobを起動する
docker start myrunoob
実行中のコンテナmyrunoobを停止します
docker stop myrunoob
コンテナmyrunoobを再起動します
docker restart myrunoob
走る
docker run :新しいコンテナを作成してコマンドを実行します
文法
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
オプションの説明:
- -a stdin: 標準入出力コンテンツ タイプ、オプションの STDIN/STDOUT/STDERR の 3 つの項目を指定します。
- -d: バックグラウンドでコンテナを実行し、コンテナ ID を返します。
- -i: コンテナーを対話モードで実行します。通常は -t と一緒に使用します。
- -P: ランダム ポート マッピング。コンテナの内部ポートがホストのポートにランダムにマッピングされます。
- -p: ポートマッピングをホスト(ホスト)ポート:コンテナポートの形式で指定します。
- -t: コンテナの擬似入力ターミナルを再割り当てします。通常は -i と一緒に使用されます。
- --name="nginx-lb": コンテナーの名前を指定します。
- --dns 8.8.8.8: コンテナーが使用する DNS サーバーを指定します。これはデフォルトではホストと同じです。
- --dns-search example.com: コンテナーの DNS 検索ドメイン名を指定します。これはデフォルトではホストと同じです。
- -h "mars": コンテナーのホスト名を指定します。
- -e username="ritchie": 環境変数を設定します。
- --env-file=[]: 指定されたファイルから環境変数を読み取ります。
- --cpuset="0-2" または --cpuset="0,1,2": コンテナを指定された CPU にバインドして実行します。
- -m :コンテナーが使用するメモリの最大量を設定します。
- --net="bridge": コンテナのネットワーク接続タイプを指定します。ブリッジ/ホスト/なし/コンテナ: 4 つのタイプをサポートします。
- --link=[]: 別のコンテナへのリンクを追加します。
- --expose=[]: ポートまたはポートのグループを開きます。
- --volume 、 -v: ボリュームをバインドします
例
docker イメージ nginx:latest を使用してコンテナーをバックグラウンド モードで起動し、コンテナーに mynginx という名前を付けます。
docker run --name mynginx -d nginx:latest
イメージ nginx:latest を使用してコンテナをバックグラウンド モードで起動し、コンテナのポート 80 をホスト上のランダムなポートにマップします。
docker run -P -d nginx:latest
ミラー nginx:latest を使用してコンテナをバックグラウンド モードで起動し、コンテナのポート 80 をホストのポート 80 にマップし、ホストのディレクトリ /data をコンテナの /data にマップします。
docker run -p 80:80 -v /data:/data -d nginx:latest
コンテナのポート 8080 をバインドし、ローカル ホスト 127.0.0.1 のポート 80 にマッピングします。
$ docker run -p 127.0.0.1:80:8080/tcp ubuntu bash
イメージ nginx:latest を使用して対話モードでコンテナーを起動し、コンテナー内で /bin/bash コマンドを実行します。/bin/bash : イメージ名がコマンドの後に、ここでは対話型シェルが必要なので、/bin/bash が使用されます。
runoob@runoob:~$ docker run -it nginx:latest /bin/bash
root@b8573233d675:/#
ターミナルを終了するには、 exit を直接入力します。
root@ed09e4490c57:/# exit