この記事ではDockerの基本操作について説明します。
Dockerイメージの操作
ここでは、Docker公式のリポジトリサービスであるDocker Hubからイメージを取得する手順を説明します。
イメージのダウンロード
Dockerコンテナを起動するためには、Dockerコンテナのもとになる「Dockerイメージ」が必要です。
Docker Hubからイメージを取得するには、docker image pull
コマンドを使います。
このコマンドの構文は次の通りです。
$ docker image pull [オプション] イメージ名[:タグ名]
例えば、CentOSのバージョン7(タグ名:7)をダウンロードするには以下のコマンドを実行します。
$ docker image pull centos:7
Dockerイメージ名にイメージを取得するURLを指定することもできます。URLは、プロトコル(https://)を除いて指定します。
例えば、以下のコマンドを実行すると、オープンソースの機械学習フレームワークであるTensorFlowのDockerイメージを
「https://gcr.io/tensorflow/tensorflow」から取得できます。
$ docker image pull gcr.io/tensorflow/tensorflow
イメージの一覧表示
取得したイメージの一覧表示を行います。イメージの一覧表示は、docker image ls
コマンドを使います。
このコマンドの構文は以下の通りです。
$ docker image ls [オプション] [レポジトリ名]
指定できるオプション
オプション | 説明 |
---|---|
-all, -a | すべてのイメージを表示 |
--digests | ダイジェストを表示するかどうか |
--no-trunc | 結果をすべて表示する |
--quiet, -q | DockerイメージIDのみ表示 |
コマンドを実行すると以下の図のように結果が表示されます。
それぞれの結果の意味は以下の表の通りです。
項目 | 説明 |
---|---|
REPOSITORY | イメージの名前 |
TAG | イメージタグ名 |
IMAGE ID | イメージID |
CREATED | 作成日 |
SIZE | イメージのサイズ |
イメージの削除
作成したイメージはdocker image rm
コマンドで削除できます。
このコマンドの構文は以下の通りです。
$ docker image rm [オプション] イメージ名 [イメージ名]
指定できるオプション
オプション | 説明 |
---|---|
--force, -f | 強制的にイメージを削除する |
--no-prun | 中間イメージを削除しない(中間イメージとはDockerイメージを作成する際に自動で作成されるイメージのことです。) |
ここまでで、Dockerのイメージを操作する方法を説明しました。
Dockerコンテナの生成・起動・停止
イメージが出来上がったら、コンテナを生成できます。ここでは、コンテナの生成・起動・停止を行うコマンドについて説明します。
コンテナ生成・起動(docker container run コマンド)
Dockerコンテナの生成・起動は、docker container run
コマンドを実行します。
このコマンドの構文は以下の通りです。
$ docker container run [オプション] イメージ名[:タグ名] [引数]
指定できる主なオプション
オプション | 説明 |
---|---|
--attach, -a | 標準入力(STDIN)/標準出力(STDOUT)/標準エラー出力(STDERR)にアタッチする |
--detach, -d | コンテナを生成し、バックグラウンドで実行する。(バックグラウンド実行とはサーバとして実行することです。) |
--name [コンテナ名] | コンテナ名を設定する |
コンテナを起動するときに、ネットワークに関する設定を行うことができます。
コンテナ起動時にコンテナのネットワーク設定をするための構文は以下になります。
$ docker container run [ネットワークオプション] イメージ名[:タグ名] [引数]
例えば、WebサーバーのNginxのイメージをもとにして、コンテナを生成し、ホストOSのポート番号8080とコンテナのポート番号80をマッピングして起動するコマンドは以下になります。
$ docker container run -d -p 8080:80 nginx
このコマンドを実行すると、ホストの8080ポートにアクセスすると、コンテナ上で動作しているNginx(80番ポート)のサービスにアクセスできます。
コンテナ停止(docker container stop コマンド)
起動しているコンテナを停止する時は、docker container stopコマンドを使います。
このコマンドの構文は以下の通りです。
$ docker container stop [オプション] コンテナ識別子 [コンテナ識別子]
コンテナ削除(docker container rm コマンド)
停止しているコンテナを削除するときはdocker container rmコマンドを使います。
このコマンドの構文は以下の通りです。
$ docker container rm [オプション] コンテナ識別子 [コンテナ識別子]
指定できる主なオプション
オプション | 説明 |
---|---|
--force, -f | 起動中のコンテナを強制的に削除する |
--volumes, -v | 割り当てたボリュームを削除する(ボリュームとはコンテナのデータを永続化するためのホストOSのディスク領域のことです。) |
ここまでで、Dockerコンテナを操作する方法を学びました。
Dockerコンテナを使ったWebサーバの構築
ここまでの内容で、Dockerイメージをダウンロードして、コンテナを生成・起動・停止する手順を説明しました。
以下では、これまでの内容を使って、NginxのDcokerコンテナを立ち上げます。
1. Dockerイメージのダウンロード
まずはDocker HubからNginxのDockerイメージをダウンロードします。
以下のコマンドを実行してダウンロードしましょう。
(コマンドを実行するディレクトリはどこでも構いません。)
$ docker pull nginx
2. Dockerコンテナを起動
ダウンロードしたDockerイメージを使ってNginxのサーバを起動します。
以下のコマンドを実行します。(コマンドを実行するディレクトリはどこでも構いません。)
--name webserver
はコンテナ名の指定です。
$ docker container run --name webserver -d -p 80:80 nginx
コマンドを実行したら実際に起動しているか確認するため、Webブラウザで「http://localhost:80」にアクセスします。
Nginxのサーバのトップ画面(下の図)が表示されれば、問題なく動作していることを確認できます。
3. Dockerコンテナの停止
Dockerで起動したNginxのサーバの状態を確認するには、docker container ps
コマンドを実行します。
コマンドの実行結果を見ると、「webserver」という名前のDockerコンテナでNginxのサーバが起動し、コンテナの80番ポートを転送していることがわかります。
以下のコマンドを実行しコンテナのプロセスを停止します。
$ docker stop webserver
コンテナが停止したので、Webブラウザから再度アクセスするとエラーになるのが確認できます。
ここまでで、Dockerの基本操作について説明しました。
次の記事ではDockerfileを使用したコンテナ構築について学んで行きます。