如何在 DOCKER 容器内更改 apache 运行 的 httpd.conf 并重新启动 apache
How to make changes to httpd.conf of apache running inside DOCKER container and restart apache
我是 docker 的新手。在我们的 docker 环境中 - Apache 已安装并且已启动 运行。
现在我需要进入容器,修改httpd.conf
,保存它然后我需要重新启动apache。
你们能告诉我需要做什么吗?
我很困惑 -
'exec' 和 'attach' 命令。
打开一个bash进入容器 shell:
docker exec -it containerName bash
我猜你最好重新加载 apache 配置而不是重新启动 apache。
但我不会走这条路,只是修改 Dockerfile 并重建并重新运行图像。
为 link 编辑:https://docs.docker.com/engine/reference/commandline/exec/
无需附加或执行(这实际上是一个调试功能)
您可以使用 docker cp
将 httpd.conf
的本地版本复制到容器中。 (这样,您就可以在舒适的本地环境中修改文件)
docker cp httpd.conf <yourcontainer_name>:/path/to/httpd.conf
完成后,您可以发送 USR1 信号以请求正常重启(参见 docker kill
语法):
docker kill --signal="USR1" <yourcontainer_name>
将 <yourcontainer_name>
替换为 运行 Apache 的容器 ID 或名称。
仅当您的容器启动的主进程是
时才有效
CMD ["apachectl", "-DFOREGROUND"]
在“Docker: How to restart a service running in Docker Container”查看更多信息
要更新 Apache 配置,您需要:
替换 Apache 配置。
如果你有从容器外部映射的配置文件夹,你应该更新容器外部的配置。
如果您的 Apache 配置存储在容器内,您将需要 运行 像这样:
docker cp httpd.conf YOUR_CONTAINER_NAME:/path/to/httpd.conf
执行优雅的 Apache 重启:
sudo docker exec -it YOUR_CONTAINER_NAME apachectl graceful
我是 docker 的新手。在我们的 docker 环境中 - Apache 已安装并且已启动 运行。
现在我需要进入容器,修改httpd.conf
,保存它然后我需要重新启动apache。
你们能告诉我需要做什么吗? 我很困惑 - 'exec' 和 'attach' 命令。
打开一个bash进入容器 shell:
docker exec -it containerName bash
我猜你最好重新加载 apache 配置而不是重新启动 apache。 但我不会走这条路,只是修改 Dockerfile 并重建并重新运行图像。
为 link 编辑:https://docs.docker.com/engine/reference/commandline/exec/
无需附加或执行(这实际上是一个调试功能)
您可以使用 docker cp
将 httpd.conf
的本地版本复制到容器中。 (这样,您就可以在舒适的本地环境中修改文件)
docker cp httpd.conf <yourcontainer_name>:/path/to/httpd.conf
完成后,您可以发送 USR1 信号以请求正常重启(参见 docker kill
语法):
docker kill --signal="USR1" <yourcontainer_name>
将 <yourcontainer_name>
替换为 运行 Apache 的容器 ID 或名称。
仅当您的容器启动的主进程是
时才有效CMD ["apachectl", "-DFOREGROUND"]
在“Docker: How to restart a service running in Docker Container”查看更多信息
要更新 Apache 配置,您需要:
替换 Apache 配置。
如果你有从容器外部映射的配置文件夹,你应该更新容器外部的配置。
如果您的 Apache 配置存储在容器内,您将需要 运行 像这样:
docker cp httpd.conf YOUR_CONTAINER_NAME:/path/to/httpd.conf
执行优雅的 Apache 重启:
sudo docker exec -it YOUR_CONTAINER_NAME apachectl graceful