docker の操作 - Development

  • 作成日:
  • 最終更新日:2025/06/25

コンテナの作成

Apache のコンテナを作成します。

docker run --name apache -d -p 8080:80 httpd

docekr run コマンドは、コンテナを作成し、起動するコマンドです。イメージがない場合は、イメージのダウンロードも行います。

docker createdocker startdocker pullといったコマンドがありますが、一般的には、docker runを使います。

docker run コマンドで単一のApacheコンテナを自動起動させるには、以下のコマンドを実行します。

docker run -d --name apache -p 8080:80 --restart always httpd:latest

「 --restart always 」 が自動起動を設定する重要なフラグです。 Dockerデーモンが起動したとき、またはコンテナが終了したときに、常にコンテナを再起動させます。

「 httpd:latest 」は、最新の Apache の公式イメージを指定します。

ホストから接続する

http://<IPアドレス>:8080

※ VirtualBox に AlamLinux をインストールし、Apache のコンテナを作成しています。

コンテナ内に入って設定ファイルを確認・編集する

コンテナに入る(bash シェル起動)には、以下のコマンドを実行します。

docker exec -it apache bash

設定ファイルを開くには、以下のようにします。

cat /usr/local/apache2/conf/httpd.conf

Apache の公式イメージには、vi や nano などのエディタは入っていないのでローカルで編集 & マウントすることになります。

もし、コンテナにツールを入れて編集し内容を反映させたい場合は、Apache の再起動を行います。再起動するには、コンテナを再起動するか、もしくは、コンテナ内で httpd を再起動します。

# コンテナ再起動
docker restart apache

# bash
httpd -k restart

この方法では、コンテナを削除した場合、コンテナ内の変更はすべて消えます。「 docker restart(再起動)」なら設定は残りますが、再作成時にはリセットされます。

ここで説明したコンテナ内で直接編集する方法は、一時的な確認・テスト用に限ります。

設定の変更の永続化

設定の変更の永続化するには、設定ファイルをホスト側に保存してマウントします。

設定ファイルをコピーして編集します。

docker cp apache:/usr/local/apache2/conf/httpd.conf ./my-httpd.conf

コピーしたファイルを編集します。

編集したファイルをコンテナ起動時にマウントします。

docker run -d --name apache -p 8080:80 \
-v "$PWD/my-httpd.conf":/usr/local/apache2/conf/httpd.conf \
httpd

この方法なら、ホスト側でファイルを編集すれば内容は常に反映され、再作成しても消えません。

コンテナ内から抜ける

「 docker exec -it コンテナ名 bash 」のコマンドを実行し、コンテナのシェルに入った場合、コンテナ内から抜けるには、以下のコマンドを実行します。

exit

コンテナを停止する

docker stop apache

停止した後、再度起動するには、以下のコマンドを実行します。

docker start apache

コンテナ作成

Apache

docker run -d -p 8080:80 --name apache httpd

Nginx

docker run -d -p 8080:80 --name nginx nginx

MariaDB

docker run --detach --name mariadb --env MARIADB_ROOT_PASSWORD=password -p 3306:3306 mariadb:latest

ホストOSに mysql クライアントをインストールして接続します。

AlamaLinux に mysql クライアントをインストールするには、以下のコマンドを実行します。

sudo dnf install -y mariadb

コンテナの MariaDB に接続するには、以下のコマンドを実行します。

mysql -h 127.0.0.1 -P 3306 -u root -p

「 --env MARIADB_ROOT_PASSWORD=xxxxx 」は、MariaDB の root ユーザーのパスワードを設定するための環境変数です。

MARIADB_ROOT_PASSWORD を省略すると、MariaDB はセキュリティ上の理由で起動しません。