2017-04-03 86 views
0

我有一个日志级别设置为JSON的正在运行的容器。我想重新启动日志级别设置为none的容器。如何在没有日志级别的情况下重新启动Docker容器?

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

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

+0

我没有看到任何''docker run'的--log-level'标志。您能否提供一些关于您最初如何启动容器的信息? –

回答

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 
[email protected]:~$ sudo vi /mnt/sda1/var/lib/docker/containers/776d9c6d63c5e229fe4ce4bfe534f42cc9d1f04df7699171ce28414c4f086a63/hostconfig.json 

查找"Type":"json-file"并更改为"Type":"none"并保存。

现在重新启动泊坞窗守护程序(和退出SSH):

[email protected]:~$ sudo /etc/init.d/docker restart 
[email protected]:~$ exit 

再次启动你的容器:

$ docker start mytest 

没有更多的日志:

$ docker logs mytest 
"logs" command is supported only for "json-file" and "journald" logging drivers (got: none) 
0

log-level是一个过时的命令,我想你的意思--log-driver

重启或使用docker update任期间无法设置日志级别,所以唯一的办法是杀死容器和重新开始。希望你使用了一个音量来存储持久数据。

docker kill <id> 
docker run --log-driver=none 
相关问题