如何重新启动docker容器没有日志级别?

我有一个日志级别设置为JSON的正在运行的容器。 我想重新启动日志级别设置为none的容器。

我试图使用docker restart --log-driver none <CONTAINER_ID> ,但它没有奏效。

如何重新启动我的docker容器出日志级别?

我没有意识到它指的是--log-driver 。 如果是这种情况,你绝对不能删除容器,并开始一个新的,有一个选项。 您可以手动编辑hostconfig.json文件来更改日志logging驱动程序并重新启动Docker守护进程。

例:

我启动一个容器,每隔10秒loggingdate输出:

 $ 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 

find"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) 

log-level是一个不赞成的命令,我想你的意思是--log-driver

在重新启动或使用docker update期间,您不能设置日志级别,所以唯一的方法是杀死容器并重新启动。 希望你使用了一个容量来保存你的持久数据。

 docker kill <id> docker run --log-driver=none