
【Docker基礎】Dockerで行う操作とコンテナ内部で行う操作
Docker を使いこなすうえで、「Docker(親)に対する操作」 と 「コンテナ(子)の内部に対する操作」 の区別をはっきりさせることはとても重要です。
一見すると両者は同じように見えますが、実際には 操作対象 と 使うコマンド が異なり、さらにコンテナ内部の Linux ディストリビューションによって流儀(言葉)が変わるケースもあります。ここでは、そうした違いをわかりやすく整理します。

Docker(親)で行う操作
- Docker Engine(親)の起動・停止
- コンテナの作成・起動・停止
・例:docker run -d httpd
,docker stop mycontainer
, etc. - コンテナやイメージの管理
・例:docker ps
,docker image ls
,docker rm mycontainer
- ネットワークやボリュームの設定・操作
・例:docker network create
,docker volume create
これらは 「docker コマンド」 を使って実行します。
コンテナ自体に対する根本的な操作や Docker Engine の状態管理が中心です。
コンテナ内部で行う操作(子への命令)
一方、コンテナ内部 での命令は、Linux コマンドを使って行います。
たとえば、
- ソフトウェアのインストール・実行・停止
・例:apt install apache2
(Debian系)やyum install httpd
(RedHat系) - 設定ファイルの変更
・例:/etc/apache2/sites-available/000-default.conf
を編集 - コンテナ内のファイル操作
・例:cd /var/www/html
,rm index.html
, etc.
コンテナ内部の操作をするときは、bash や sh といったシェル(shell)でコマンドを入力します。
docker exec -it <コンテナ名> /bin/bash
docker run -it <イメージ> /bin/bash
(コンテナ起動時に bash を指定)
親と子の流儀が違うこともある

1. ホスト OS の違い
- Windows / Mac / Linux で、Docker Engine のインストール方法や設定コマンドが違う。
- ただし、
docker run
,docker stop
など docker コマンド自体 は基本共通
2. コンテナ内 Linux の違い
- Debian系 (Debian, Ubuntu) → パッケージ管理コマンド:
apt
- RedHat系 (Red Hat, CentOS) → パッケージ管理コマンド:
yum
,dnf
- Alpine →
apk
などコマンドが少なめ - 同じ Docker Engine に複数コンテナが載っていても、それぞれ 内部の Linux ディストリビューション が異なる場合があり、操作するコマンドや流儀が変わる
たとえば Apache のインストールコマンド
- Debian系:
apt install apache2
- RedHat系 :
yum install httpd
ordnf install httpd
このように、「コンテナ内」での操作(Linuxコマンド)は、その Linux ディストリビューションの流儀に合わせる必要があります。
まとめ
- Docker(親)への操作
・コンテナを作成、起動、停止、削除する。
・イメージをダウンロード、管理する。
・ボリュームやネットワークを設定する。
・→ コマンド例:docker run
,docker ps
,docker stop
など - コンテナ内部(子)への操作
・Linux コマンドを使ってソフトウェアをインストール/設定/ファイル操作
・→ コマンド例:apt install
,yum install
,cd /var/www/html
など - 流儀(言語)が違う理由
・ホスト OS (Windows / Mac / Linux) と コンテナ内部 OS (Ubuntu / CentOS / Alpine) でコマンドやパスの表記が異なる。
・ただしdocker
コマンドは原則共通
要するに、“Docker とコンテナは親子関係にある” というイメージで、外部から docker
コマンドでコンテナを管理し、内部では bash や apt/yum コマンドなどを使うという二段構えになります。次回は、さらに Docker Hub への登録といったトピックについて解説していきましょう。