リンドくんたなべ先生、Docker使って開発してみたいんですけど、コマンドが多すぎて何から覚えればいいのかわからないです...
たなべ確かにDockerのコマンドは多いよね。でも実際の開発で使うのは基本的なコマンドが中心なんだ。
今日は、実際の現場でよく使うコマンドを厳選して、実例付きで教えるよ!
Docker(ドッカー)は、現代のソフトウェア開発において欠かせないコンテナ技術です。しかし、初心者の方にとってDockerのコマンドライン操作は、その豊富な機能ゆえに「何から覚えればいいかわからない」という悩みを抱えがちです。
この記事では、プログラミング学習者の方が最初に覚えるべきDockerの基本コマンドを厳選し、実践的な使用例とともに解説していきます。
Dockerコマンドの基本構造を理解しよう
リンドくんそもそも、Dockerのコマンドって、どんな仕組みになってるんですか?
たなべDockerのコマンドには一定のパターンがあるんだ。これを理解しておくと、新しいコマンドを覚えるのが楽になるよ。
Dockerコマンドの基本形式
Dockerのコマンドは、以下のような構造になっています。
docker [管理コマンド] [サブコマンド] [オプション] [引数]例えば、コンテナを起動するコマンドは以下のようになります。
docker container run -d nginxこの場合:
docker= Dockerのメインコマンドcontainer= 管理コマンド(コンテナ関連の操作)run= サブコマンド(実行する操作)-d= オプション(バックグラウンド実行)nginx= 引数(使用するイメージ名)
よく使われる管理コマンド
Dockerでは、操作対象によって管理コマンドが分かれています。
docker container- コンテナの作成・起動・停止・削除などdocker image- イメージの取得・一覧・削除などdocker volume- データの永続化に使うボリューム操作docker network- コンテナ間の通信設定
この基本構造を理解しておくことで、Dockerコマンドがより理解しやすくなります。また、docker --helpやdocker container --helpのように、ヘルプコマンドを活用することで、必要な情報をすぐに確認できます。
コンテナ操作の基本コマンド
リンドくんコンテナを動かすのに、最低限覚えるべきコマンドって何ですか?
たなべコンテナ操作では、起動・停止・確認・削除の4つが基本中の基本だね。これができれば日常的な開発作業はこなせるよ。
コンテナの起動(docker run)
最も重要なコマンドの一つが、コンテナを起動するdocker runです。
# 基本的な起動
docker run hello-world
# バックグラウンドで起動
docker run -d nginx
# ポートを指定して起動
docker run -d -p 8080:80 nginx
# コンテナに名前をつけて起動
docker run -d --name my-nginx -p 8080:80 nginxよく使うオプション
-d= バックグラウンドで実行(デタッチモード)-p= ポートのマッピング(ホスト側:コンテナ側)--name= コンテナに名前をつける-it= 対話的なターミナルモード
実行中コンテナの確認(docker ps)
# 実行中のコンテナ一覧
docker ps
# 停止中も含めて全てのコンテナ一覧
docker ps -a
# より詳細な情報で表示
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"コンテナの停止と削除
# コンテナの停止
docker stop my-nginx
# コンテナの削除
docker rm my-nginx
# 強制停止と削除を同時に
docker rm -f my-nginx
# 停止中のコンテナを全て削除
docker container pruneイメージ管理の必須コマンド
リンドくんイメージって何でしょうか?コンテナとは違うんですか?
たなべイメージはコンテナの設計図のようなもので、コンテナは実際に動いているアプリケーションなんだ。
CDとCDプレイヤーの関係に似てるかな。(若い方にはわからないかもしれませんが……)
イメージの取得(docker pull)
DockerHubからイメージをダウンロードします。
# 最新版のイメージを取得
docker pull nginx
# 特定のバージョンを取得
docker pull nginx:1.21
# 別のレジストリからイメージを取得
docker pull mysql:8.0イメージの一覧確認(docker images)
# ローカルのイメージ一覧
docker images
# より詳細な情報で表示
docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}"
# 不要なイメージの表示(dangling images)
docker images -f dangling=trueイメージの削除
# 特定のイメージを削除
docker rmi nginx:latest
# 複数のイメージを削除
docker rmi nginx:1.21 mysql:8.0
# 使用されていないイメージを全て削除
docker image prune
# 全ての未使用イメージを削除(危険)
docker image prune -aイメージの検索
# DockerHubでイメージを検索
docker search nginx
# 公式イメージのみ検索
docker search --filter is-official=true nginxデータ永続化のためのボリューム操作
ボリュームの作成と管理
# ボリューム作成
docker volume create my-data
# ボリューム一覧
docker volume ls
# ボリューム詳細情報
docker volume inspect my-data
# ボリューム削除
docker volume rm my-data
# 未使用ボリューム削除
docker volume pruneマウントの使い分け
# ボリュームマウント(推奨)
docker run -d -v my-data:/var/lib/mysql mysql:8.0
# バインドマウント(開発時に便利)
docker run -d -v /host/path:/container/path nginx
# 一時的なマウント
docker run -d --tmpfs /tmp nginxログとデバッグに役立つコマンド
リンドくんコンテナがうまく動かないときは、どうやって原因を調べればいいんですか?
たなべそういうときはログ確認とコンテナ内への接続が基本だね。デバッグに使えるコマンドを覚えておくと、トラブル解決がぐっと楽になるよ。
ログの確認
# コンテナのログを確認
docker logs my-container
# リアルタイムでログを追跡
docker logs -f my-container
# 最新の100行だけ表示
docker logs --tail 100 my-container
# タイムスタンプ付きでログ表示
docker logs -t my-containerコンテナ内での作業
# 実行中コンテナ内でコマンド実行
docker exec -it my-container bash
# rootユーザーで接続
docker exec -it -u root my-container bash
# 単発コマンドの実行
docker exec my-container ls -la /var/log
# ファイルのコピー(コンテナ→ホスト)
docker cp my-container:/path/to/file /host/path
# ファイルのコピー(ホスト→コンテナ)
docker cp /host/path my-container:/path/to/fileシステム情報の確認
# Docker全体の情報
docker info
# システム使用量
docker system df
# 詳細な使用量
docker system df -v
# 不要なリソース全削除(注意!)
docker system prune
# 全てのリソース削除(危険!)
docker system prune -a --volumesトラブルシューティングの手順
問題が発生した際の基本的な調査手順です。
# 1. コンテナの状態確認
docker ps -a
# 2. 問題のあるコンテナのログ確認
docker logs problematic-container # ←problematic-containerはコンテナ名です
# 3. コンテナ内部の調査
docker exec -it problematic-container bash
# または
docker exec -it problematic-container sh
# 4. リソース使用量の確認
docker stats
# 5. 設定情報の確認
docker inspect problematic-container
# 6. ネットワーク状況の確認
docker network ls
docker network inspect bridgeまとめ
リンドくん思ったよりもパターンがあって、覚えやすそうですね!実際に手を動かして覚えてみます。
たなべその通り!Dockerのコマンドは実際に使ってみることで確実に身につくよ。
最初は基本的なものから始めて、徐々に応用的なコマンドも使えるようになろう!
Dockerは現代のソフトウェア開発において必須のスキルとなっています。今回紹介した基本コマンドをマスターすることで、効率的な開発環境の構築や運用が可能になります。
今回のポイントをおさらいしましょう。
- コンテナ操作:
docker run,docker ps,docker stop,docker rmが基本 - イメージ管理:
docker pull,docker images,docker rmiでイメージを効率的に管理 - データ永続化:
docker volumeでデータの安全な管理が可能 - デバッグ:
docker logs,docker execでトラブルシューティングが簡単に
これらのコマンドは、単独で使うだけでなく、組み合わせることで真価を発揮します。実際のプロジェクトでは、複数のサービスを連携させたり、開発環境と本番環境で異なる設定を使い分けたりすることが一般的です。
まずは今回紹介した基本コマンドを実際に試してみて、Dockerの便利さを体感してください。
そして、慣れてきたらdocker-composeやKubernetesなどの、より高度なコンテナオーケストレーション技術に挑戦してみることをおすすめします。





