Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Apakah perbezaan antara containerd dan docker

Apakah perbezaan antara containerd dan docker

WBOY
WBOYasal
2021-12-29 09:53:1717932semak imbas

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".

Apakah perbezaan antara containerd dan docker

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:

Apakah perbezaan antara containerd dan docker

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn