차이점: 1. Containerd는 dockershim을 거칠 필요가 없으므로 호출 체인이 더 짧고, docker가 통과해야 하므로 호출 체인이 더 깁니다. 2. docker는 cni를 "docker-shim"으로 호출하고, Containerd는 cni를 호출합니다. "컨테이너드 크리".
이 튜토리얼의 운영 환경: linux7.3 시스템, docker-1.13.1 버전, Dell G3 컴퓨터.
containerd와 docker의 차이점은 무엇인가요?
k8s를 사용할 때 docker와 Containerd를 사용한 콜 체인은 다음과 같습니다.
containerd를 사용할 때 호출이 발생하는 것을 보는 것은 어렵지 않습니다. 체인이 더 짧습니다. 그런 다음 dockershim과 docker
data 디렉터리
를 거쳐야 합니다. 나는 모든 사람이 docker의 데이터 디렉터리가 /var/lib/docker 디렉터리로 기본 설정된다는 것을 알고 있다고 믿습니다. /var/lib/containerd
Logs
k8s를 사용할 때 docker를 런타임으로 사용하면 docker는 실제로 컨테이너 프로그램 로그 배치를 담당합니다. /var/log/pod 및 /var/log/container 아래의 로그 파일은 /var/lib/docker 아래의 해당 로그 파일에 소프트 링크됩니다. 로그에 대한 일부 매개변수를 구성해야 하는 경우 직접 수정할 수 있습니다. docker 구성 파일. 그리고 이제 컨테이너를 런타임으로 사용하면 kubelet이 컨테이너 로그 배치를 담당하게 됩니다. /var/log/container 아래의 로그 파일은 /var 아래의 로그 파일에 소프트 연결됩니다. /log/pod 조정이 필요한 경우 로그 매개변수를 수정해야 합니다. kubelet 관련 구성
CNI
docker를 런타임으로 사용할 때 kubelet의 docker-shim은 cni를 호출하는 역할을 담당합니다. 런타임에, Containerd에 내장된 Containerd-Cri는 cni
[plugins."io.containerd.grpc.v1.cri".cni] bin_dir = "/opt/cni/bin" conf_dir = "/etc/cni/net.d"
Streaming service
호출을 담당합니다. k8s에 익숙한 친구들은 kubectl exec 및 kubelet log와 같은 명령이 다음을 통해 컨테이너와 통신해야 한다는 것을 알고 있습니다. 스트리밍 서비스와 관련된 apiserver. docker API 자체는 kubelet의 docker-shim이 docker API 스트림을 통해 전달되도록 지원하지만 컨테이너는 별도로 구성해야 합니다
[plugins."io.containerd.grpc.v1.cri"] stream_idle_timeout = "4h0m0s" stream_server_address = "127.0.0.1" stream_server_port = "0" enable_tls_streaming = false
권장 학습: "docker 비디오 튜토리얼"
위 내용은 컨테이너드와 도커의 차이점은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!