【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.

コンテナ内部の操作をするときは、bashsh といったシェル(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
  • Alpineapk などコマンドが少なめ
  • 同じ Docker Engine に複数コンテナが載っていても、それぞれ 内部の Linux ディストリビューション が異なる場合があり、操作するコマンドや流儀が変わる

たとえば Apache のインストールコマンド

  • Debian系apt install apache2
  • RedHat系yum install httpd or dnf 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 への登録といったトピックについて解説していきましょう。