主机重启后,用docker-compose up重启Docker化WordPress是否为标准操作?
关于Docker Compose重启WordPress容器的问题解答
首先得说,你已经在docker-compose.yml里做了最关键的配置——给db和wordpress服务都加上了restart: always!这个Docker重启策略的作用就是:当主机服务器重启后,这些容器会自动恢复运行,根本不需要你手动执行任何命令。这应该是最省心的方式了。
接下来逐个解答你的疑问:
1. 直接执行docker-compose up -d可行吗?会重新创建容器吗?
可行,但它的行为分两种情况:
- 如果容器只是处于停止状态(比如主机重启后),且你的
docker-compose.yml配置和镜像都没有变化,docker-compose up -d只会启动现有容器,不会重新创建。你之前遇到的“重新创建容器”可能是因为某种特殊情况(比如容器之前被意外删除,或者你修改了配置/镜像)。 - 如果配置或镜像有更新,它会重新创建受影响的容器,确保运行最新的配置和镜像。
2. 网站已存在时,重新创建容器属于不良实践吗?
如果是不必要的重新创建,确实算不上优雅:
- 虽然你做了数据持久化,网站数据不会丢,但重新创建容器会导致短暂的服务中断;
- 如果容器内有未持久化的临时配置(比如你手动在容器里改了一些临时设置),这些会丢失(不过你的场景里核心数据都挂载到本地了,影响不大)。
所以能不重新创建就尽量不创建。
3. 更优雅的重启/启动方式
这里有两个更合适的命令,都不会重新创建容器:
- 启动停止的容器:如果容器只是停止状态(比如主机重启后容器没自动启动,或者你手动停了),用:
也可以指定启动某个服务:docker-compose startdocker-compose start db wordpress - 重启运行中的容器:如果容器正在运行,你需要重启它们(比如修改了配置后),用:
同样可以指定服务:docker-compose restartdocker-compose restart wordpress
总结
- 优先依赖
restart: always配置,让容器随主机自动重启,这是最省心的方案; - 手动操作时,用
docker-compose start或docker-compose restart代替docker-compose up -d(除非你确实需要更新配置/镜像),避免不必要的容器重建。
内容的提问来源于stack exchange,提问作者Basj
相关产品推荐
相关产品推荐

