Dockerを利用する場合、非常に簡単なコマンドで様々な操作を行うことができます。各コマンドを、より便利に使えるオプションの数も少なくありません。その一方で、コマンドの種類が多いことから「どんなコマンドを使えばよいか」分からなくなることも多いでしょう。
この記事では、特によく使われるDockerコマンドを、簡単な使用例と一緒にまとめています。ここで紹介したコマンドだけでも、Dockerの基本的な操作や利用が可能です。Dockerコマンドを忘れてしまった場合や、Dockerを初めて学ぶ方はぜひこの記事を参考にして下さい。
目次
DockerfileからDockerコンテナを起動するまでに使うコマンド
Dockerコンテナは、Dockerイメージと呼ばれるテンプレートファイルを実行(run)することで起動します。またDockerイメージを作成するためには、Dockerfileが必要です。
Dockerfileとは、Dockerイメージを作成する際に使うコマンドをまとめたテキストファイルで、Dockerイメージの設計図と言えば分かりやすいでしょう。Dockerfileをもとに、Dockerイメージを作成(build)することができます。
Dockerfileの書き方については、以下公式サイトで確認下さい。
https://docs.docker.jp/develop/develop-images/dockerfile_best-practices.html
ここでは作成したDockerfileをもとに、Dockerコンテナを起動するまでに必要なコマンドを紹介します。
DockerfileからDockerイメージを作成(bulid)する
Dockerfileをもとに、Dockerイメージを作成(build)する際のコマンドは以下の通りです。
docker image build [オプション] Dockerfileのパス
以下のように利用します。
docker image build -t imagename/nginx:latest .
「-t」はイメージ名・タグ名を指定するオプションです。上記例では「imagename/nginx」というイメージ名を指定しています。そのあとに続く「latest」はタグ名です。タグにはバージョン名を使うのが一般的で、最新版には慣例的に「latest」が使われます。
最後の「.」はカレントディレクトリに、「Dockerfile」という名称のDockerfileがあるという意味です。
Dockerイメージを使いDockerコンテナを起動(run)する
Dockerイメージを使って、Dockerコンテナを起動(run)するコマンドは以下の通りです。
docker container run [オプション] imagename
以下のように使います。
docker container run --name httpdcontainer -d -p 8080:80 httpd
・「–name」はコンテナ名を指定するオプションです。
・「-d」はコンテナをバックグラウンドで実行するオプションです
・「-p」はコンテナのポート番号と、サーバーのポート番号を紐づけるオプションです。
本例ではコンテナの80番ポートと、サーバーの8080番ポートを紐づけています。
作成済のDockerコンテナを操作するコマンド
ここでは、作成済のDockerコンテナを操作(起動・停止など)するためのコマンドを紹介します。これら操作も非常に簡単なコマンドで実行が可能です。
作成済(停止中)のコンテナを起動する
作成済(停止中)のコンテナを起動するコマンドは以下の通りです。
docker container start [オプション] containername
以下のように使います。
docker container start container1
上記コマンドでは「conatiner1」という名称のDockerコンテナを起動しています。
Dockerコンテナを停止する
起動中のDockerコンテナを停止するためのコマンドは以下の通りです。
docker container stop [オプション] containername
以下のように使います。
docker container stop container1
上記コマンドでは「conatiner1」という名称のDockerコンテナを停止させています。
停止中のコンテナを削除する
停止中のコンテナを削除するためのコマンドは以下の通りです。
docker container rm [オプション] containername
以下のように使います。
docker container rm container1
上記コマンドでは「container1」という名称のDockerコンテナを削除しています。
「-f(–force)」オプションをつけると、Dockerコンテナが起動中でも削除可能です。
コンテナを再起動する
起動中のDockerコンテナを再起動するためのコマンドは以下の通りです。
docker container restart [オプション] containername
以下のように使います。
docker container restart container1
上記コマンドでは「container1」という名称のDockerコンテナを再起動しています。
起動中のコンテナ内でコマンドを実行する
起動中のコンテナ内で、コマンドを実行したい場合に使うコマンドは以下の通りです。
docker container exec [オプション] containername コマンド
以下のようにコマンドを実行すると、対象のコンテナ内に入り任意のコマンドを実行することが可能です。
docker container exec -it container1 bash
Dockerイメージを削除する
Dockerイメージを削除するためのコマンドは以下の通りです。
docker image rm [オプション] imagename
以下のように使います。
docker image rm image1
上記コマンドでは「image1」というイメージを削除しています。以下のようにイメージIDを指定して削除することも可能です。
docker image rm aaaaaaaaaaaa
Docker Hub(公式レジストリ)でよく使うコマンド
Docker Hubは、Dockerイメージを共有するための公式レジストリ・サービスです。
ここでは、Docker Hubで特によく使うコマンドを紹介します。
DockerイメージをDocker Hubから取得する
Docker Hubから任意のDockerイメージを取得する場合のコマンドは以下の通りです。
docker image pull [オプション] imagename
以下のように利用します。
docker image pull image1
上記コマンドでは「image1」というイメージを取得しています。
DockerイメージをDocker Hubへアップロードする
自分で作成したイメージを、Docker Hubにアップロードする際のコマンドは以下の通りです。
docker image push [オプション] imagename
以下のように利用します。
docker image push image1
上記コマンドでは「image1」というイメージをアップロードしています。
なお、Docker Hubにイメージをアップロードするためには、あらかじめ以下コマンドでDocker Hubにログインしておくことが必要です。
docker login -u アカウント名
※このあと、パスワードを聞かれますので指示に従って入力してください。
Docker Hubのアカウント作成方法などの詳細については、以下記事を参照ください。
【入門】Docker Hubとは?概要と仕組み、基本的な使い方を解説
Docker Hubは、コンテナ型仮想化サービス「Docker」を使う上で非常に便利なサービスです。Docker Hubを使うことによって、非常に高機能なアプリケーションをDocker上で簡単に実行できます。Dockerについて学ぶ上で、Docker Hubを避けて通ることはできません。 この記事では、Docker Hubの概要や仕組み、基本的な使い方について解説します。なお、使い方については、D…
ローカルのDockerイメージ(コンテナ)を一覧表示する
Dockerを使い続けていると、ローカルのDockerイメージ・Dockerコンテナが増えて、どんな種類があったかわからなくなることもあります。Dockerでは、簡単なコマンドでローカルにあるDockerイメージ・Dockerコンテナを一覧表示可能です。以下、具体的なコマンドの内容をみていきましょう。
Dockerイメージの一覧を表示
ローカルにあるDockerイメージの一覧を表示したいときは、以下コマンドを実行します。
docker image ls [オプション]
以下のようにリポジトリを指定すると、指定したリポジトリを含むイメージのみ表示されます。
docker image ls repository1
上記コマンドでは、「repository1」というリポジトリを含むイメージのみ表示されます。
Dockerコンテナの一覧を表示
Dockerコンテナの一覧を表示するオプションは以下の通りです。
docker container ls [オプション]
なお、デフォルトでは実行中のDockerコンテナのみ表示します。
以下のように「-a(–all)」オプションを指定することで、停止中のコンテナも含めて表示することが可能です。
docker container ls -a
【参考】新旧Dockerコマンドについて
Dockerでは、2017年1月にv1.13がリリースされてから、コマンドラインの命令体系が再編成されました。Dockerのコマンドが増え過ぎたことから、整理して使いやすくするのが目的です。
新しいコマンドラインでは、以下のように「何に対して」コマンドを実行するかを明示します。
旧 | 新 | 内容 |
---|---|---|
docker run | docker container run | コンテナを実行する |
docker stop | docker container stop | 実行中のコンテナを停止する |
docker build | docker image build | DockerfileからDockerイメージを作成する |
docker pull | docker image pull | レジストリからイメージを所得する |
2022年12月時点でまだ旧コマンドも利用可能ですが、新コマンドの利用が推奨されています。なお本記事で紹介しているのは、全て新コマンドです。
まとめ
Dockerはここで紹介した基本的ないくつかのコマンドだけで、いろいろなことが実行できます。様々な種類の有用なアプリケーションをDockerコンテナ化して利用が可能です。オプションの数も少なくはないので、1つ1つ、この記事を参考にしながら使い続けて覚えていくとよいでしょう。
またDockerコマンドは、2017年1月に大幅な再編が行われているので注意して下さい。旧コマンドは2022年時点でまだ使えるものの、公式では新コマンドの利用を推奨しています。しかしインターネット記事のなかには、旧コマンドを使った解説も少なくありません。今後のことも考えて、できるだけ新コマンドを使うとよいでしょう。
KAGOYA CLOUD VPSでは初期費用無料、月額 550円(日額 20円)~の低価格で手軽にDockerを利用可能です
KAGOYA CLOUD VPSにはDocker CEのアプリケーションセットアップも用意されています。そのためDocker環境を、非常に簡単な手順で手間なく作成可能です。
KAGOYA CLOUD VPSについて詳しくは、以下公式サイトで確認下さい。
開発・検証・プログラミング学習に。無駄なコストもかけたくないあなたにおすすめのVPS
カゴヤのVPSは初期費用無料でアカウント登録さえしておけば、必要なときだけ日額課金でサーバーを立ち上げ可能!料金は使った分だけ。