コンテナの基本的な知識についてまとめてきましたが、今回からいよいよDockerに触れていきます。
Dockerとは
改めてDockerについて簡単に説明します。
Dockerとは、コンテナ仮想化技術のディファクトスタンダードとなっているコンテナ管理ツールです。
もはやコンテナ=Dockerといっても過言ではないくらいですね。
DockerはCLIによるコマンド操作やDocker desktopと言うGUIを用いた操作によってコンテナを扱うことができます。
desktopは直感的に分かりやすい操作が可能ですが、詳細な設定などはできないためコマンドでの操作も必要となってきます。
また、DockerにはDocker Hubと言う公式のレジストリがあり、多くのコンテナイメージが既に利用可能な状態になっているため、コンテナの利用を簡単に始めることができます。
Dockerのインストール
では実際にDockerをインストールしていきましょう。
Docker desktopをインストールすればCLIも利用できるようになるため、そちらをインストールしていきます。
以下のリンク先のサイトからダウンロードしてインストールを行いましょう。
詳細な手順は割愛します。何か詰まったら調べてみてください。
dockerコマンド
dockerはdocker desktop上でのGUIによる操作も可能ですが、細かい設定や操作などはできないため基本的のCLIを利用したコマンド操作を行います。
dockerのコマンド操作にはdocker
コマンドを利用します。
dockerコマンドの基本構成
docker
コマンドは以下のような基本構成となっています。
docker 対象 操作
docker
の後に操作する対象を指定し、その後に実行する操作を指定します。
この基本構成に、オプションを指定して詳細な設定などを追加させていきます。
例として、コンテナの作成・実行を行うコマンドは以下のようになります。
docker container run
container
コマンドでコンテナに対する操作であることを指定し、run
コマンドでコンテナの作成・実行を命令しています。
dockerコマンドのオプション指定
dockerコマンドは、その他の多くのコマンドと同様に--〇〇
というようなハイフンをつけた特定のオプションを指定することができます。
例として、先ほどのdocker container run
コマンドにオプションをつけてみましょう。--name
オプションでコンテナの名前を、-p
オプションでポート番号の指定を行います。
docker container run --name container-name -p 8080:80 https
このように、docker
コマンドでは対象と操作を指定し、オプションによって詳細設定などを記述してコンテナに関する様々な操作を行なっていきます。
dockerコマンドの対象と操作
docker
コマンドの操作対象に指定できるものと、その操作対象に対して行うことができる主な操作を簡単にまとめていきます。
なお、下記のもの以外にも多くの操作コマンドがあるので、ぜひ調べてみてください。
container
コンテナに対する操作を実行します。
コマンド | 操作内容 |
run | コンテナの作成・実行を行う |
start | 停止しているコンテナを開始する |
stop | 起動しているコンテナを停止する |
rm | コンテナを削除する |
docker container
コマンドの操作compose
複数のコンテナに対する操作を実行します。
コマンド | 操作内容 |
up | サービスを作成して開始する |
run | サービスの一時的な実行を行う |
start | 停止しているサービスを開始する |
stop | 起動しているサービスを停止する |
down | サービスを停止し、関連するリソースを削除する |
docker compose
コマンドの操作image
コンテナイメージに対する操作を実行します。
コマンド | 操作内容 |
build | Dockerfileからイメージをビルドする |
ls | ローカルに保存されているイメージのリストを表示する |
pull | リモートレジストリのイメージを取得する |
push | イメージをリモートレジストリにアップする |
rm | イメージを削除する |
docker image
コマンドの操作network
ネットワークに関する操作を実行します。
Dockerではコンテナ毎に異なるネットワークを作成することや、コンテナ間の通信設定などを行うことができます。
それらの操作をこのコマンドで行います。
コマンド | 操作内容 |
create | ネットワークを作成する |
connect | コンテナをネットワークに接続する |
disconnect | コンテナをネットワークから切断する |
ls | ネットワークのリストを取得する |
rm | ネットワークを削除する |
docker network
コマンドの操作volume
コンテナ技術ではコンテナのライフサイクルとは独立して、永続的なデータやコンテナ間のデータ共有を行うデータボリュームという機能が備わっています。docker volume
コマンドではデータボリュームに対する操作を実行します。
コマンド | 操作内容 |
create | データボリュームを作成する |
ls | データボリュームの一覧を取得する |
rm | データボリュームを削除する |
docker volume
コマンドの操作Apacheのコンテナの作成・実行・停止・削除をしてみる
では、実際にコマンドを利用してコンテナを作成・削除・削除してみます。
今回はdocker hubにあるApacheのコンテナをプルして作成していきます。
コンテナの作成・実行
以下のコマンドを実行してみましょう。
docker container run --name apache01 -p 8080:80 -d httpd
--name apache01
でコンテナの名前を指定、-p 8080:80
でホストとコンテナ間もポートを8080にマッピング、-d
でデタッチモード(コンテナをバックグラウンドで実行する)の指定をしています。
最後のhttpd
はコンテナイメージの名前を指定しています。
コマンド実行後は以下のように表示されます。
docker container run
コマンドではコンテナイメージがローカルに存在しない場合、自動でレジストリからプルしてくれます。
エラーが表示されていなければ起動できています。
Docker desktopを見てみましょう。
apache01という名前のコンテナが作成され、起動されているのが分かります。
試しにブラウザでhttp://localhost:8080/
にアクセスしてみましょう。
Apacheのデフォルトページである画像のような画面が表示されれば成功しています。
コンテナの停止
次にコンテナの停止をしてみましょう。
先ほどコンテナの起動を行ったものとは別のウィンドウを開き以下のコマンドを実行します。
docker container stop apache01
実行すると以下のような表示がされます。
Docker desktopとブラウザ上でのアクセスを確認してみましょう。
コンテナが停止され、ブラウザからアクセスできなくなっていますね。
コンテナの削除
最後に作成したコンテナを削除してみましょう。
以下のコマンドを実行します。
docker container rm apache01
以下のように表示されれば成功です。
Docker desktopを確認してみましょう。
コンテナが削除されていますね。
まとめ
- Dockerを使ったコンテナの操作はDocker desktopによるGUI操作とCLIによるコマンド操作の2つの方法がある
- 詳細な設定を行うことができるため基本的にコマンド操作を使う方が多い
- コマンド操作は
docker
コマンドで行う。 docker
コマンドの基本構文はdocker 対象 操作 [その他オプション]
docker
コマンドで簡単にコンテナの作成から実行・停止・削除までの操作を行いました。
とても簡単に仮想環境を作成できることが実感できたのではないでしょうか。
次回以降はより実践的にコンテナを扱う方法をまとめていきたいと思います。
ここまで読んでいただきありがとうございました。
それでは、また。