Dockerコンテナの作成と操作方法
カテゴリ:コンテナ仮想化
この記事ではDockerでのコンテナの作成と操作について解説いたします。
Note以降は CentOS 8 + Docker 19.03.12 環境での手順となります。
コンテナイメージの取得
コンテナイメージの取得する場合は、https://hub.docker.com から構築したいコンテナを探します。例えば Ubuntu のコンテナであれば https://hub.docker.com/_/ubuntu より取得できます。
Copy and paste to pull this image に記載されているコマンドを確認します。 Ubuntuの最新版のコンテナをインストールするコマンドは以下です。
docker pull ubuntu
参考構文:docker pull [イメージ名]:[タグ名]
※タグ名は省略可能
ではコンソール上で、docker pull ubuntu を実行してみます。
例)
# docker pull ubuntu Using default tag: latest latest: Pulling from library/ubuntu 54ee1f796a1e: Pull complete f7bfea53ad12: Pull complete 46d371e02073: Pull complete b66c17bbf772: Pull complete Digest: sha256:31dfb10d52ce76c5ca0aa19d10b3e6424b830729e32a89a7c6eee2cda2be67a5 Status: Downloaded newer image for ubuntu:latest docker.io/library/ubuntu:latest
これで Ubuntu のコンテナイメージが取得できました。
Dockerコンテナの操作
Dockerでは、docker コマンドを用いてコンテナを操作します。
使用法:docker [オプション] コマンド
Docker のイメージ一覧を表示
Docker のイメージ一覧を表示します。
docker images
例)
# docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest 4e2eef94cd6b 5 days ago 73.9MB
先程取得した Ubuntu のイメージが表示されていますね。
コンテナの作成と起動
コンテナを作成するには、docker run コマンドに続けてイメージを指定して実行します。必要に応じてオプションを付与します。
例)
docker run -it --name ubuntu1 ubuntu
--name コンテナ名 | コンテナに名前を割り当てる |
---|---|
-i, --interactive | 接続されていなくてもSTDINを開いたままにします |
-t, --tty | 疑似TTYを割り当てる |
-d, --detach | コンテナをバックグラウンドで実行し、コンテナIDを表示する |
注意 コンテナをデタッチ(抜ける)にはCtrl + P、Ctrl + Qの順番でキーを入力します。 デタッチした状態でコンテナを起動する場合は -d オプションを付けます。
作成したコンテナの確認
作成および起動したコンテナを確認する場合は docker ps コマンドを実行します。
docker ps
例)
# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f3cb948ce6b4 ubuntu "/bin/bash" 4 minutes ago Up 4 minutes ubuntu1
参考デフォルトでは起動済みコンテナのみを表示します。停止しているコンテナも含めてすべてのコンテナを表示する場合は、-a オプションを付与します。
例)
docker ps -a
NoteCONTAINER IDがコンテナを識別するIDとなります。このCONTAINER IDを指定してコンテナの起動や停止を行えます。
コンテナの起動
コンテナを起動するには docker start コマンドに続けて対象のコンテナIDまたは名前を指定します。
docker start コンテナID|名前
例)
docker start f3cb948ce6b4
コンテナID f3cb948ce6b4 のコンテナが起動していることが確認できます。
# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f3cb948ce6b4 ubuntu "/bin/bash" 8 minutes ago Up 8 minutes ubuntu1
コンテナの停止
コンテナを停止するには docker stop コマンドに続けて対象のコンテナIDまたは名前を指定します。
docker stop コンテナID|名前
例)
docker stop f3cb948ce6b4
コンテナID f3cb948ce6b4 のコンテナは起動していないことが確認できます。
# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
コンテナにアタッチ
起動したコンテナにアタッチ(入る)には、docker attach コマンドに続けて対象のコンテナIDまたは名前を指定します。
docker attach コンテナID|名前
例)
docker attach f3cb948ce6b4
コンテナをデタッチ
コンテナをデタッチ(抜ける)には、以下の2つの方法があります。
コンテナをデタッチして停止させる | アタッチしたコンテナのコンソール上で exit を実行 |
---|---|
コンテナを起動したままでデタッチする | Ctrl + P、Ctrl + Q を順番に入力 |
コンテナの削除
作成したコンテナを削除するには、docker rm コマンドに続けて対象のコンテナIDまたは名前を指定します。
docker rm コンテナID|名前
例)
docker rm f3cb948ce6b4
dockerのコマンド一覧
dockerコマンドで使用できるオプションは以下となります。
--config string | クライアント構成ファイルの場所(デフォルトは「/root/.docker」) |
---|---|
-c, --context string | デーモンへの接続に使用するコンテキストの名前(DOCKER_HOST env varおよび「docker context use」で設定されたデフォルトのコンテキストをオーバーライドします) |
-D, --debug | デバッグモードを有効にする |
-H, --host list | 接続するデーモンソケット |
-l, --log-level string | ログレベルを設定します( "debug" | "info" | "warn" | "error" | "fatal")(デフォルトは "info") |
--tls | TLSを使用します。 --tlsverifyによって暗示される |
--tlscacert string | このCAのみが署名した信頼証明書(デフォルトは「/root/.docker/ca.pem」) |
--tlscert string | TLS証明書ファイルへのパス(デフォルトは「/root/.docker/cert.pem」) |
--tlskey string | TLSキーファイルへのパス(デフォルトは「/root/.docker/key.pem」) |
--tlsverify | TLSを使用してリモートを確認する |
-v, --version | バージョン情報を出力して終了 |
dockerコマンドで使用できる管理コマンドは以下となります。
builder | ビルドを管理する |
---|---|
config | Docker構成を管理する |
container | コンテナを管理する |
context | コンテキストを管理する |
engine | Dockerエンジンを管理する |
image | イメージを管理する |
network | ネットワークを管理する |
node | Swarmノードを管理する |
plugin | プラグインを管理する |
secret | Dockerシークレットを管理する |
service | サービスを管理する |
stack | Dockerスタックを管理する |
swarm | スウォームを管理する |
system | Dockerを管理する |
trust | Dockerイメージの信頼を管理する |
volume | ボリュームを管理する |
dockerコマンドで使用できるコマンドは以下となります。
attach | ローカルの標準入力、出力、およびエラーストリームを実行中のコンテナにアタッチする |
---|---|
build | Dockerfileからイメージをビルドする |
commit | コンテナの変更から新しいイメージを作成する |
cp | コンテナとローカルファイルシステム間でファイル/フォルダーをコピーする |
create | 新しいコンテナを作成する |
diff | コンテナのファイルシステム上のファイルまたはディレクトリへの変更を検査する |
events | サーバーからリアルタイムのイベントを取得する |
exec | 実行中のコンテナでコマンドを実行する |
export | コンテナのファイルシステムをtarアーカイブとしてエクスポートする |
history | イメージの履歴を表示する |
images | イメージの一覧表示 |
import | tarballからコンテンツをインポートしてファイルシステムイメージを作成します |
info | システム全体の情報を表示する |
inspect | Dockerオブジェクトに関する低レベルの情報を返す |
kill | 実行中の1つ以上のコンテナを強制終了する |
load | tarアーカイブまたはSTDINからイメージを読み込む |
login | Dockerレジストリにログインする |
logout | Dockerレジストリからログアウトする |
logs | コンテナのログを取得する |
pause | 1つ以上のコンテナ内のすべてのプロセスを一時停止します |
port | コンテナのポートマッピングまたは特定のマッピングを一覧表示します |
ps | コンテナの一覧表示 |
pull | レジストリからイメージまたはリポジトリをプルする |
push | イメージまたはリポジトリをレジストリにプッシュする |
rename | コンテナの名前を変更する |
restart | 1つ以上のコンテナを再起動します |
rm | 1つ以上のコンテナを削除する |
rmi | 1つまたは複数のイメージを削除する |
run | 新しいコンテナでコマンドを実行する |
save | 1つ以上のイメージをtarアーカイブに保存します(デフォルトでSTDOUTにストリーミングされます) |
search | Docker Hubでイメージを検索する |
start | 停止している1つ以上のコンテナを開始する |
stats | コンテナのリソース使用状況統計のライブストリームを表示する |
stop | 実行中の1つ以上のコンテナを停止する |
tag | SOURCE_IMAGEを参照するタグTARGET_IMAGEを作成します |
top | コンテナの実行中のプロセスを表示する |
unpause | 1つ以上のコンテナ内のすべてのプロセスの一時停止を解除します |
update | 1つ以上のコンテナの構成を更新する |
version | Dockerのバージョン情報を表示する |
wait | 1つ以上のコンテナが停止するまでブロックし、その終了コードを出力します |
公開日時:2020年08月25日 14:19:39
最終更新日時:2022年03月13日 08:32:13