假设我有一台运行 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 ....
问候