我有一个日志级别设置为JSON的正在运行的容器。我想重启容器,日志级别设置为none
。
我尝试使用docker restart --log-driver none <CONTAINER_ID>
,但它没有用。
如何在没有日志级别的情况下重新启动docker容器?
答案 0 :(得分:1)
我没有意识到它指的是--log-driver
。如果是这种情况,并且您绝对无法删除容器并启动新容器,则可以选择。您可以手动编辑hostconfig.json
文件以更改日志记录驱动程序并重新启动Docker守护程序。
示例:
我启动一个容器,每隔10秒记录一次日期输出:
$ docker run -d --log-driver json-file --name mytest alpine sh -c "while true; do echo \$(date); sleep 10; done"
edf6bb60088ded11d991b6f31bc7091e2f6b81552937471beeafc5f271697a6f
$ docker logs mytest
Mon Apr 3 21:27:08 UTC 2017
Mon Apr 3 21:27:18 UTC 2017
Mon Apr 3 21:27:28 UTC 2017
现在我停止了容器:
$ docker stop mytest
编辑hostconfig.json
文件(第一个SSH到我的Docker机器):
$ docker-machine ssh default
docker@default:~$ sudo vi /mnt/sda1/var/lib/docker/containers/776d9c6d63c5e229fe4ce4bfe534f42cc9d1f04df7699171ce28414c4f086a63/hostconfig.json
查找"Type":"json-file"
并更改为"Type":"none"
并保存。
现在重启Docker守护程序(并退出SSH):
docker@default:~$ sudo /etc/init.d/docker restart
docker@default:~$ exit
再次启动容器:
$ docker start mytest
没有更多日志:
$ docker logs mytest
"logs" command is supported only for "json-file" and "journald" logging drivers (got: none)
答案 1 :(得分:0)
log-level
是一个已弃用的命令,我认为您的意思是--log-driver
您无法在重新启动期间或使用docker update
设置日志级别,因此唯一的方法是终止容器并重新启动。希望您使用卷来存储持久数据。
docker kill <id>
docker run --log-driver=none