Dockerは、アプリケーションの開発・テスト・本番環境へのデプロイを効率化する強力なツールとして、多くの開発者や運用担当者に利用されています。中でも「docker run」コマンドは、Dockerを使ううえで最も基本的で頻繁に使われるコマンドの一つです。この記事では、「docker run」の基本的な使い方から、よく使われるオプション、具体的な使用例までを丁寧に解説します。Linux環境でDockerを利用する初心者の方でも理解しやすいように、実行例を交えてわかりやすく紹介していきます。
docker runコマンドとは?
「docker run」コマンドは、Dockerコンテナを起動するための基本コマンドです。このコマンドを使うことで、Dockerイメージから新たにコンテナを作成し、それを実行することができます。
例えば、以下のような基本的なコマンドがあります。
docker run ubuntu
このコマンドは、Docker Hubからubuntu
イメージを取得し、そのイメージからコンテナを作成して起動します。
ポイントは以下の2つです。
- イメージがローカルにない場合は自動的にダウンロードされる
- 作成したコンテナは、指定がなければ停止後に削除されない
よく使うオプションの紹介
「docker run」には多くの便利なオプションがあります。ここでは、よく使うオプションを中心に紹介します。
-it:インタラクティブモードで起動
docker run -it ubuntu /bin/bash
このオプションを付けることで、起動したコンテナに対してインタラクティブに操作ができます。特に、シェル操作を行いたい場合に有効です。
-i
: 標準入力を開いたままにする-t
: 擬似ターミナルを割り当てる
–rm:コンテナ終了後に自動削除
docker run --rm ubuntu echo "hello"
このオプションを付けると、コンテナが終了した時点で自動的に削除されます。一時的な作業でコンテナを使うときに便利です。
-d:バックグラウンドで実行
docker run -d nginx
このオプションは、コンテナをバックグラウンド(デタッチド)で実行します。主にサーバー用途で使われます。
-p:ポートフォワーディング
docker run -d -p 8080:80 nginx
ホストの8080ポートを、コンテナ内の80番ポートに接続します。外部からコンテナ内のWebサービスへアクセスする際に利用します。
–name:コンテナに名前を付ける
docker run --name my-nginx -d nginx
このオプションを使うことで、コンテナに任意の名前を付けて管理しやすくできます。
docker runの基本構文
以下がdocker run
コマンドの基本構文です。
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
[OPTIONS]
: オプション指定(例:-it, -d, -pなど)IMAGE
: 使用するDockerイメージ名[COMMAND]
: コンテナ内で実行するコマンド(省略可能)[ARG...]
: コマンドに渡す引数
例として、ubuntu
イメージを使ってls
コマンドを実行する場合は以下のようになります。
docker run ubuntu ls /home
docker runの使用例(実践)
1. Ubuntuコンテナでコマンド実行
docker run --rm ubuntu echo "Hello, Docker!"
このコマンドは、一時的にUbuntuコンテナを起動し、「Hello, Docker!」と出力した後、コンテナを削除します。
2. NginxコンテナでWebサーバーを起動
docker run -d -p 8080:80 --name my-nginx nginx
この例では、nginx
イメージを使ってWebサーバーをバックグラウンドで起動し、http://localhost:8080
でアクセスできるようにしています。
3. MySQLコンテナを起動
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest
MySQLの環境変数(パスワード)を指定して、MySQLサーバーを起動します。データベース開発や検証に役立ちます。
コンテナの確認と停止
起動したコンテナは、以下のコマンドで確認できます。
docker ps
バックグラウンドで実行中のコンテナ一覧が表示されます。停止したい場合は、docker stop
を使います。
docker stop my-nginx
名前やIDを指定してコンテナを停止できます。
エラー時の対処法
docker runを使っていてよくあるエラーとその対処方法も知っておきましょう。
イメージが見つからない
Unable to find image 'xxx' locally
このメッセージはイメージがローカルに存在しないという意味です。インターネットに接続されていればDocker Hubから自動で取得されますが、ネットワークが遮断されていると失敗します。
対処法:
- イメージ名のスペルを確認
- ネットワーク接続を確認
ポートが重複している
Error starting userland proxy: listen tcp 0.0.0.0:8080: bind: address already in use
このエラーは、ホスト側のポートがすでに使われている場合に出ます。
対処法:
- 使用していないポートに変更する(例:-p 8081:80)
- 既存のプロセスを停止する
まとめ:docker runの習得がDocker活用の第一歩
「docker run」は、Dockerを使う上で最初に覚えるべき非常に重要なコマンドです。オプションや構文をしっかり理解しておくことで、自由自在にコンテナを起動・操作することができます。この記事で紹介した使い方や実例を活用すれば、日々の開発や検証作業が格段に効率化されることでしょう。
次は、「docker ps」や「docker exec」などのコマンドと組み合わせて、さらに高度なDocker活用術に挑戦してみてください。