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
docker run コマンドでよく使用するオプション
--name コンテナ名コンテナに名前を割り当てる
-i, --interactive接続されていなくてもSTDINを開いたままにします
-t, --tty疑似TTYを割り当てる
-d, --detachコンテナをバックグラウンドで実行し、コンテナIDを表示する

注意 コンテナをデタッチ(抜ける)にはCtrl + PCtrl + 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 + PCtrl + 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")
--tlsTLSを使用します。 --tlsverifyによって暗示される
--tlscacert stringこのCAのみが署名した信頼証明書(デフォルトは「/root/.docker/ca.pem」)
--tlscert stringTLS証明書ファイルへのパス(デフォルトは「/root/.docker/cert.pem」)
--tlskey stringTLSキーファイルへのパス(デフォルトは「/root/.docker/key.pem」)
--tlsverifyTLSを使用してリモートを確認する
-v, --versionバージョン情報を出力して終了

dockerコマンドで使用できる管理コマンドは以下となります。

管理コマンド
builderビルドを管理する
configDocker構成を管理する
containerコンテナを管理する
contextコンテキストを管理する
engineDockerエンジンを管理する
imageイメージを管理する
networkネットワークを管理する
nodeSwarmノードを管理する
pluginプラグインを管理する
secretDockerシークレットを管理する
serviceサービスを管理する
stackDockerスタックを管理する
swarmスウォームを管理する
systemDockerを管理する
trustDockerイメージの信頼を管理する
volumeボリュームを管理する

dockerコマンドで使用できるコマンドは以下となります。

コマンド
attachローカルの標準入力、出力、およびエラーストリームを実行中のコンテナにアタッチする
buildDockerfileからイメージをビルドする
commitコンテナの変更から新しいイメージを作成する
cpコンテナとローカルファイルシステム間でファイル/フォルダーをコピーする
create新しいコンテナを作成する
diffコンテナのファイルシステム上のファイルまたはディレクトリへの変更を検査する
eventsサーバーからリアルタイムのイベントを取得する
exec実行中のコンテナでコマンドを実行する
exportコンテナのファイルシステムをtarアーカイブとしてエクスポートする
historyイメージの履歴を表示する
imagesイメージの一覧表示
importtarballからコンテンツをインポートしてファイルシステムイメージを作成します
infoシステム全体の情報を表示する
inspectDockerオブジェクトに関する低レベルの情報を返す
kill実行中の1つ以上のコンテナを強制終了する
loadtarアーカイブまたはSTDINからイメージを読み込む
loginDockerレジストリにログインする
logoutDockerレジストリからログアウトする
logsコンテナのログを取得する
pause1つ以上のコンテナ内のすべてのプロセスを一時停止します
portコンテナのポートマッピングまたは特定のマッピングを一覧表示します
psコンテナの一覧表示
pullレジストリからイメージまたはリポジトリをプルする
pushイメージまたはリポジトリをレジストリにプッシュする
renameコンテナの名前を変更する
restart1つ以上のコンテナを再起動します
rm1つ以上のコンテナを削除する
rmi1つまたは複数のイメージを削除する
run新しいコンテナでコマンドを実行する
save1つ以上のイメージをtarアーカイブに保存します(デフォルトでSTDOUTにストリーミングされます)
searchDocker Hubでイメージを検索する
start停止している1つ以上のコンテナを開始する
statsコンテナのリソース使用状況統計のライブストリームを表示する
stop実行中の1つ以上のコンテナを停止する
tagSOURCE_IMAGEを参照するタグTARGET_IMAGEを作成します
topコンテナの実行中のプロセスを表示する
unpause1つ以上のコンテナ内のすべてのプロセスの一時停止を解除します
update1つ以上のコンテナの構成を更新する
versionDockerのバージョン情報を表示する
wait1つ以上のコンテナが停止するまでブロックし、その終了コードを出力します

公開日時: 2020年08月25日  14:19:39

本格的なスキルを身につける

Linux/ITエンジニアとしてのスキルを身につけるにはLPI-Japanアカデミック認定校リナックスアカデミーがおすすめですよ。

コンテナ仮想化に戻る

「コンテナ仮想化」に関する他の手順
「コンテナ仮想化」に関するTips

「コンテナ仮想化」に関するTipsはありません。

このページのトップに戻る