2017-04-03 55 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 
相關問題