docker compose 一直 restarting , is restarting, wait until the container is running

技术分享 · Terry · 于 5年前 发布 · 25860 次阅读

不少同学,在使用docker compose 安装fecshop的时候,遇到

ERROR: Container 37b60f56a60538181902cef72daee860d9e32a358e583c7f740a39a6dc472874 is restarting, wait until the container is running

这是因为:

https://github.com/fecshop/yii2_fecshop_docker/blob/master/docker-compose.yml

中各个image的配置为: restart: always

容器因为 OOM 的问题被 killed 掉过。而我们的 docker-compose 配置的 restart: always 又导致容器自动重启。所以,容器会不断的被 kill,然后又 restart。

出现这种问题, 最大的可能是内存不足造成的

参考:http://www.dockerinfo.net/3677.html

共收到 26 条回复
Terry#15年前 0 个赞

关于docker compose 的 restart 参数:

https://docs.docker.com/compose/compose-file/#ports

详细:

restart

no is the default restart policy, and it does not restart a container under any circumstance. When always is specified, the container always restarts. The on-failure policy restarts a container if the exit code indicates an on-failure error.

restart: "no"
restart: always
restart: on-failure
restart: unless-stopped
Terry#25年前 0 个赞

@zeicool 你的问题解决了吗? 是内存问题导致的?

zeicool#35年前 0 个赞

MongoDB shell version v3.6.2 connecting to: mongodb://127.0.0.1:27017 2018-05-04T06:19:22.872+0000 W NETWORK [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reason: Connection refused 2018-05-04T06:19:22.893+0000 E QUERY [thread1] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed : connect@src/mongo/shell/mongo.js:251:13 @(connect):1:6 exception: connect failed

好像不是,我单独用docker run启动后,连接不上,报这个错误

Terry#45年前 0 个赞

@zeicool [#3楼](#comment3) 这个帖子是回复你前面的那个问题:mongodb容器,一直在 Restarting

新问题,开新帖!

zeicool#55年前 0 个赞

就是哪个问题,我只单独启动mongodb,就不会是内存不足了吧,进容器后发现mongodb进程没起来

Terry#65年前 0 个赞

@zeicool [[[#5楼](#comment5)](#comment5)](#comment5) 你这个问题,是连接的问题,不是restaring的问题,自己看清报错

docker容器,不要将mongodb mysql的连接的ip设置成127.0.0.1,不要修改默认配置,docker通过host映射会找到ip地址,详细看帖子:

http://www.fecshop.com/topic/935

zeicool#75年前 0 个赞
  • ./db/mongodb/data:/data/db 把这个去了就可以了,数据库文件有问题
Terry#85年前 0 个赞

@zeicool [[#7楼](#comment7)](#comment7) 说清楚,看不明白

./db/mongodb/data:/data/db 这是什么? 中间还有个冒号,能严谨一些说清楚吗?

9楼 已删除.
Terry#105年前 0 个赞

@zeicool #9楼 有这个挂载目录吗? ./db/mongodb/data:/data/db 这是个目录吗?那个目录有冒号,前面问你,你为什么不回复?

搞什么?!!!!

Terry#115年前 0 个赞

这个论坛,现在维护的越来越操蛋了!!!!

各种费心,各种操蛋。

zeicool#125年前 0 个赞

那个是你docker-compose.yml文件里挂载的目录啊,去掉就可以了 我用下面的docker run 可以正常运行,去掉了挂载/data/db

docker run -d --name mongodb -e MONGO_DATA_DIR=/data/db -e MONGO_LOG_DIR=/data/logs -v $pwd/db/mongodb/example_db:/data/example_db -v $pwd/db/mongodb/logs:/data/logs -v $pwd/db/mongodb/etc/mongod.conf:/etc/mongod.conf -p 27017:27017 registry.cn-hangzhou.aliyuncs.com/fecshopsoft/mongo

zeicool#135年前 0 个赞

我一边在测试,一边在回复,要点时间啊,老大

zeicool#145年前 0 个赞

知道你搞这个开源出来很辛苦啦,论坛不用这么急着回吧:grimacing: :bowtie:

Terry#155年前 0 个赞

@zeicool #13楼 老子看不懂你说的是什么意思,东一句,西一句

你看看文档中有这个 挂载目录吗? /data/db https://github.com/fecshop/yii2_fecshop_docker

zeicool#165年前 0 个赞

我有事情了,有空再说

Terry#175年前 0 个赞

@zeicool #14楼 不是着急的问题,是描述问题一次性描述清楚的问题,写完了东西,能先看看,写的东西别人能看懂吗?

Terry#185年前 0 个赞

@zeicool [#16楼](#comment16) 以后永远都不要来这里说。

维护论坛一点都不累,就是和你们这种描述个问题,东一句西一句,说的内容都看不懂是什么意思,这类帖子搞的心累、

发帖子,让别人帮助你解决问题,帖子描述的和狗屎一样,根本看不明白。

尽早走吧,浪费感情。

zeicool#195年前 0 个赞

https://github.com/fecshop/yii2_fecshop_docker 这个是你写的吗? 老子,老子的,你谁啊? 素质呢

Terry#205年前 0 个赞

@zeicool #19楼

连个帖子都没有能力描述清楚,明白,别跟我扯素质,讲起素质来,我比你会讲。

Terry#215年前 0 个赞

@zeicool [[[#12楼](#comment12)](#comment12)](#comment12)

1.你说你去掉了 ./db/mongodb/data:/data/db 就可以了,你为什么不说是那个文件?如果是文档,发出来文档地址url,不说,谁知道是哪里的?当然,你后面回复了,是文件:docker-compose.yml,也就是文件:https://github.com/fecshop/yii2_fecshop_docker/blob/master/docker-compose.yml

2.对于你的修改:

那个是你docker-compose.yml文件里挂载的目录啊,去掉就可以了 我用下面的docker run 可以正常运行,去掉了挂载/data/db

docker run -d --name mongodb -e MONGO_DATA_DIR=/data/db -e MONGO_LOG_DIR=/data/logs -v $pwd/db/mongodb/example_db:/data/example_db -v $pwd/db/mongodb/logs:/data/logs -v $pwd/db/mongodb/etc/mongod.conf:/etc/mongod.conf -p 27017:27017 registry.cn-hangzhou.aliyuncs.com/fecshopsoft/mongo

你去掉了挂载 /data/db , 那么mongodb的存储就会存储早mongodb容器里面,如果你销毁了容器,mongodb的数据就会丢失,因此,数据必须放到外面,以挂载的方式挂载进去

3.至于你的报错,和挂载没有问题,你可以在宿主机里面清空一下 ./db/mongodb/data里面的内容,重新试试

4.你既然说出来,我就得处理你这个回复,不然后面的人看到了就会误导,和你一样,将挂载删除,造成问题。

5.你这种描述问题的能力,对待问题的无所谓的态度,就不要跟我讲素质了,素质遍地都是,你去找可以讲的地方讲,这里只谈快速的解决问题。

zeicool#225年前 0 个赞

我也不多说,我在另一个帖子帮回答了问题,然后我在相同的文件里也发现了问题,你创建这篇帖子,让我来这里回复,你看看你这帖子说的是哪个文件?

Terry#235年前 0 个赞

@zeicool [#22楼](#comment22) 嗯,让我猜是吧? 我不知道你说的是那个文件,还是那个文档,我记忆没有那么好,什么都能记住,你说的意思我都能猜对,对于yml文件,以及docker安装fecshop的文档:https://github.com/fecshop/yii2_fecshop_docker ,我现在都忘记的差不多了,你随便拿出来一句话,或者fecshop系统的几行代码,我都不知道是那个文件里面的。

如果你意识到这是一个增加沟通成本的问题,你可以纠正,后面注意,一次性让别人明白你的意思

如果你认为你的正确的,你就坚持你的做法。

每个人有每个人的看法和想法,这里,还是那句话: 只谈快速的解决问题,其他不谈。

zeicool#245年前 0 个赞

一个文档出的问题分开几个帖子解决,这能叫快速?最后还搞得人不知道说的是哪个文件,这BUG还是不提的好,省得麻烦了

Terry#255年前 0 个赞

1.快速解决问题,包括:a>你个人的问题,b>还有后面遇到这个问题的人

2.一个问题,一个帖子,一个标题,是为了方便后面的人通过搜索就可以解决问题,通过标题就知道这个帖子描述的是什么,进入帖子后,通过帖子的内容就能解决 ,这也是快速解决问题。

3.这个不是bug问题,是你的操作问题,而且你解决问题的方式也不对,上面已经说明白了

4.该说的我都说明白了,你认为你是正确的,你就去做就行了。

zeicool#265年前 0 个赞

我只想说这个是我git下来的原文件,不知道是谁写的,错了也不知道改,提醒一下而已

Terry#275年前 0 个赞

@zeicool [#26楼](#comment26)

1.我写的,我就是fecshop作者

2.这个yml文件没错,很多人都安装成功了,yml文件没有问题,对于解决方式,上面已经说了,挂载一个文件到docker里面不会出问题。

3.出这个问题的可能原因是你这个挂载文件(宿主主机)里面有内容,或者你的docker容器中已经存在挂载,或者docker容器中存在相应的文件夹等等,应该是挂载的文件冲突造成的

4.最简单的解决方法,你可以删除mysql容器,重新run,

5.好了,到此为止,本人累了。

添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册
Your Site Analytics