2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Dockerでnginxのdefault.confやapacheのhttpd.confだけをホストにマウントしてみる

Last updated at Posted at 2022-04-10

概要

Dockerを使ったローカル環境構築をするにあたって、nginxやapacheなどサーバーの設定ファイルをいじりたい場合があります。
Dockerの基本思想は使い捨てなので、こういった設定ファイルはホスト側で持っておいてコンテナにマウントして使えるようにしておくといいですね。
というわけで早速取り出してみましょう。

準備

ディレクトリ構成は以下のようにします。

ディレクトリ構成
docker-sample
├── nginx
└── apache

confの取り出し

nginxのdefault.confを取り出す

手順は

  1. nginxのコンテナを立ち上げてコンテナに入る
  2. nginxコンテナ内でdefault.confをマウントポイントにコピー

これだけです。
nginxのdefault.confファイルは/etc/nginx/conf.d/default.confにあります。

まず手順1では以下のコマンドを実行します。

コマンドライン
docker run --rm -v /$PWD/Desktop/docker-sample/nginx:/tmp -it nginx bin/bash

これでnginxのコンテナに入った状態になると思います。
続いて手順2で以下のコマンドを実行します。

コマンドライン
cp /etc/nginx/conf.d/default.conf /tmp/

これでマウントしているdocker-sample/nginx下にdefault.confが出てきます。
コンテナは以下で終了させましょう。

コマンドライン
exit

少し解説

一応、基本形を見ておきます。

docker run [オプション] [イメージ名] [コマンド] [引数]
  • --rm
    [オプション]
    コンテナ終了時に自動的にコンテナを削除するコマンドです。
    今回はconfファイルを取り出すためだけなので取り出した後は用済みということで削除します。

  • -v ~/Desktop/docker-sample/nginx:/tmp
    [オプション]
    マウントするコマンドです。
    -v ホスト側ディレクトリ:コンテナ側ディレクトリ
    これでホスト側の/Desktop/docker-sample/nginxの中身が
    コンテナ側の/tmpにマウントされた状態になります。

  • it
    [オプション]
    コンテナに入ってシェルコマンドを使うための標準入力と標準出力です。
    手順2でコピーコマンドを使うのに必要ということですね。

  • nginx
    [イメージ名]
    nginxのイメージですね。
    イメージがなければ勝手にDocker Hubからpullしてイメージを作ってくれます。

  • /bin/bash
    [コマンド]
    コンテナ内を操作するのにbashを使うためのコマンドです。

apacheのhttpd.confを取り出す

手順は

  1. apacheのコンテナを立ち上げてコンテナに入る
  2. apacheコンテナ内でhttpd.confをマウントポイントにコピー

nginxのときと同じですね。
apacheのhttpd.confファイルは/usr/local/apache2/conf/httpd.confにあります。
というわけで先と同じように

コマンドライン
docker run --rm -v ~/Desktop/docker-sample/apache:/tmp -it httpd /bin/bash
// httpdコンテナに入って
cp /usr/local/apache2/conf/httpd.conf /tmp/
// コピーできたら終了
exit

これで以下のようなディレクトリ構成になったはずです。

ディレクトリ構成
docker-sample
├── nginx
│    └── default.conf
└── apache
     └── httpd.conf

「ネットに転がってるファイルをコピペしてくりゃいいだけじゃん」
書いててそんな気もしました笑

ただこれはconfに限らず特定のファイル・ディレクトリだけをマウントしたいとか
そういうことにも使えるのでDockerに慣れる意味でもよいかと思います。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?