全球主机交流论坛

标题: 如何优雅的在docker里运行python酸酸 [打印本页]

作者: drice    时间: 2018-3-21 16:54
标题: 如何优雅的在docker里运行python酸酸
我是在docker里简单粗暴的python server.py  这样当然没问题,但是如果docker stop xxx退出后,其实是把python那个进程给中断的,docker ps -a 后会看到existed(127) ,这样127的异常退出标志。怎么才能优雅一点呢?用supervisor?可以docker不是应该把应用当成一个进程来看待吗?
求教!
作者: 嫂子抱紧我    时间: 2018-3-21 16:54
https://www.ctl.io/developers/blog/post/gracefully-stopping-docker-containers/

作者: 阿威    时间: 2018-3-21 16:57
docker stop xxx 运行python环境的整个docker已经被你停掉了,还怎么酸酸啊
作者: cicvc    时间: 2018-3-21 17:10
试试我的酸酸镜像,4kerccc/shadowsocksr
作者: 斜阳晚暮    时间: 2018-3-21 17:21
你用容器停了,还怎么运行。
作者: drice    时间: 2018-3-21 17:26
斜阳晚暮 发表于 2018-3-21 17:21
你用容器停了,还怎么运行。

只是表达,看到退出后有137的错误提示不舒服,正常应该是exited(0)的。
最讨厌的是用rancher管理的话,显示的是starting, 而不是正常应有的running
作者: 达达大人    时间: 2018-3-21 17:28
本帖最后由 达达大人 于 2018-3-21 17:29 编辑

1:yum install -y screen
screen -S ss
python server.py

2:chmod 777 run.sh
bash run.sh
作者: tony601818    时间: 2018-3-22 00:29
一般加个s6或者supervisord做管理,和Systemd差不多
作者: 摸鱼小熊猫    时间: 2018-3-22 09:16
试试启动的时候,加  --restart=always
作者: drice    时间: 2018-3-22 09:22
摸鱼小熊猫 发表于 2018-3-22 09:16
试试启动的时候,加  --restart=always

这个了解。但是目前不是不能运行,运行是正常没有毛病的。
只是对于python来说,在docker里是一直处于运行中(当然,就是该运行),所以在rancher里观察,这个容器的状态一直是starting,而不是running。
而docker stop xxx退出的时,其实是硬生生把python关了,所以docker ps会发现这个容器退出时带了个137的错误代码exited(137)
使用不是问题,只是想把它整得更完美一点。我是行外汉,也不知道这样是不是应有的正常状态?
作者: 摸鱼小熊猫    时间: 2018-3-22 09:46
drice 发表于 2018-3-22 09:22
这个了解。但是目前不是不能运行,运行是正常没有毛病的。
只是对于python来说,在docker里是一直处于运 ...

如果python程序是一次性的,也就是运行完就停止,而指定了--restart=always,就会出现一直处于starting的状态。
如果这个pyhton程序是爬虫那种长时间运行的,可以这样:
docker run -itd --name xxx docker_image #后面不要加任何命令
docker exec -it container_name [python command]

作者: vast0906    时间: 2018-3-22 09:53
把酸酸的目录映射进容器,然后docker启动的时候后面的参数改为python 加你server.py的绝对路径。https://github.com/vast0906/Dockerfile/tree/master/shadowsocks-client   我标的是client,但是实际上server也能用,感兴趣的话自己看下。再顺手给个star
作者: gaoji.me    时间: 2018-3-22 09:57
你可以看看这个 https://xiaozhou.net/stop-docker-container-gracefully-2016-09-08.html
作者: gaoji.me    时间: 2018-3-22 09:58
你需要正确接收并处理docker守护进程发来的终止信号




欢迎光临 全球主机交流论坛 (https://loc.daji.eu.org/) Powered by Discuz! X3.4