尝试将Docker中的nginx的default.conf或apache的httpd.conf文件挂载到主机上
总结
使用Docker进行本地环境搭建时,有时需要修改服务器配置文件,如nginx或apache等。
Docker的基本思想是一次性使用,因此最好将这些配置文件保存在主机上,并挂载到容器中以便使用。
所以,让我们立即开始提取这些文件吧。
做好准备
文件目录结构如下所示。
docker-sample
├── nginx
└── apache
提取该conf。
提取nginx的default.conf文件
手順是:
-
- 启动nginx容器并进入容器内部
- 在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文件
以下是步驟
-
- 启动apache容器并进入容器内部
- 将httpd.conf复制到apache容器中的挂载点中
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
只需要复制粘贴网络上找到的文件就可以了嘛,写的时候也有这种感觉哈哈。
我认为这对于熟悉Docker也很有意义,因为它不仅可以用于限定挂载特定的文件或目录,而且还可以用于其他类似的情况。