Docker를 실행하는 Ubuntu 호스트가 있다고 가정해 보겠습니다.
이 호스트에는 FROM
ubuntu, alpine, java:8...과 같은 다양한 기본 이미지( )를 사용하여 실행 중인 많은 컨테이너가 포함되어 있습니다.
호스트에는 손으로 만든 이미지도 포함되어 있습니다.
오늘은 모든 컨테이너를 중지하고 삭제하고 다시 만들 수 있었습니다. 이미지에는 데이터가 저장되지 않습니다(컨테이너를 제출하지 않음). 따라서 내 데이터를 잃는 것은 문제가 되지 않습니다. 이미지가 동일하게 유지되는 한 서비스를 다시 시작해도 문제가 되지 않습니다.
Linux 커널에 영향을 미치는 취약점이 발견되었다고 가정합니다.
호스트가 더 이상 취약하지 않도록 호스트 OS를 업데이트했습니다. 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 ....
인사