Perbezaan: 1. containerd tidak perlu melalui dockershim, jadi rantai panggilan lebih pendek, dan docker perlu melalui, jadi rantai panggilan lebih panjang; 2. docker memanggil cni dengan "docker-shim ", containerd memanggil cni dengan "containerd- cri".
Persekitaran pengendalian tutorial ini: sistem linux7.3, versi docker-1.13.1, komputer Dell G3.
Apakah perbezaan antara containerd dan docker?
Apabila menggunakan k8s, rantai panggilan menggunakan docker dan containerd adalah seperti berikut:
Tidak sukar untuk melihat bahawa apabila menggunakan containerd, rantai panggilan lebih pendek dan tidak perlu melalui data dockershim dan docker
direktori
Saya percaya semua orang tahu bahawa direktori data lalai docker berada dalam direktori /var/lib/docker; apabila bertukar kepada containerd, direktori data lalai kepada /var/lib/containerd
Log
Apabila kita menggunakan k8s, jika docker digunakan sebagai runtime, docker sebenarnya bertanggungjawab untuk menulis log program kontena ke cakera. Fail log di bawah /var/log/pod dan /var/log/container akan dipaut lembut ke fail log yang sepadan di bawah /var/lib/docker Jika anda perlu mengkonfigurasi beberapa parameter untuk log, anda boleh mengubah suai secara langsung fail konfigurasi docker ;Dan jika kita kini menggunakan containerd sebagai masa jalan, kubelet akan bertanggungjawab untuk penempatan log kontena /log/pod. Jika pelarasan diperlukan parameter Log, anda perlu mengubah suai konfigurasi berkaitan kubelet
CNI
Apabila menggunakan docker sebagai runtime, docker-shim dalam kubelet bertanggungjawab untuk memanggil cni; apabila menggunakan containerd sebagai Pada masa jalan, containerd-cri terbina dalam containerd bertanggungjawab untuk memanggil cni
[plugins."io.containerd.grpc.v1.cri".cni] bin_dir = "/opt/cni/bin" conf_dir = "/etc/cni/net.d"
perkhidmatan penstriman
Rakan yang biasa dengan k8s tahu bahawa arahan seperti kubectl exec dan kubelet log Anda perlu berkomunikasi dengan bekas melalui pelayan api, yang melibatkan perkhidmatan penstriman. API docker itu sendiri menyokongnya. Docker-shim dalam kubelet dimajukan melalui aliran API docker; tetapi containerd perlu dikonfigurasikan secara berasingan
[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
Pembelajaran yang disyorkan: "tutorial video docker "
Atas ialah kandungan terperinci Apakah perbezaan antara containerd dan docker. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!