最近我在使用docker時(shí),遇到了一個(gè)問(wèn)題,就是在啟動(dòng)容器的時(shí)候,它會(huì)一閃而過(guò),無(wú)法看到任何日志和報(bào)錯(cuò)信息。這讓我非常困擾,因?yàn)槲倚枰焖俣ㄎ粏?wèn)題。
$ docker run -it --rm ubuntu
通過(guò)查找,我發(fā)現(xiàn)這是因?yàn)閐ocker默認(rèn)在后臺(tái)運(yùn)行,而且不會(huì)把輸出信息打印到終端上。所以我們需要使用-t選項(xiàng)來(lái)讓docker打印日志。而且也需要使用-i選項(xiàng)來(lái)保持輸入流始終開放,以便我們可以與容器進(jìn)行交互。
$ docker run -it --rm ubuntu /bin/bash
但有些情況下,即使我們?cè)黾恿?t選項(xiàng),也無(wú)法看到容器的日志輸出。這是因?yàn)槿萜骺赡軙?huì)在啟動(dòng)后立即退出,導(dǎo)致我們無(wú)法看到任何信息。所以我們可以使用-d選項(xiàng)讓docker以后臺(tái)模式運(yùn)行,然后使用docker logs命令來(lái)獲取容器的日志信息。
$ docker run -d --name my-app ubuntu $ docker logs my-app
在獲取日志之后,我們就可以根據(jù)信息來(lái)診斷和解決問(wèn)題了。