
假設我有一台運行 Docker 的 Ubuntu 主機。
該主機包含許多正在運行的容器,這些容器使用許多不同的基礎映像(FROM
),例如 ubuntu、alpine、java:8...
該主機還包含一些手工構建的圖像。
今天,我能夠停止並刪除所有容器,然後再次建立所有容器。沒有一個映像儲存資料(我不提交容器)。因此丟失我的資料不是問題。只要影像保持不變,重新啟動我的服務也不應該成為問題。
假設已發現影響 Linux 核心的漏洞。
我已經更新了我的主機作業系統,以便主機不再容易受到攻擊。 Docker 容器使用主機的核心來運行,但這足夠了嗎?我應該採取哪些注意事項和措施來確保我的容器不受該漏洞的影響?
答案1
由於 docker 容器使用主機核心。一旦主機核心更新,容器就不會出現問題。
圖書館的問題則是另一回事了。例如,Openssl 是一個庫,它在容器和主機中可能不同,應該升級。
apt-get update && apt-get -q -y upgrade
在 Dockerfile 頂部新增 是一個很好的做法。所以你應該定期建造你的鏡像。
如果您使用官方映像,最好定期進行拉取以升級容器。如果您使用 docker-compose:
docker-compose pull && docker-compose up -d
它將升級它們。對於普通的碼頭工人,你需要進行拉動。刪除容器並建立一個指向相同磁碟區的新容器:
docker pull image
docker stop containerid && docker rm containerid
docker run image ....
問候