Artikel ini membawakan anda pengetahuan yang berkaitan tentang Docker terutamanya tentang apa itu Docker Compose dan Dockerfile, dan apakah perbezaan antara mereka yang berminat, harap ia dapat membantu semua orang.
1. Perbezaan antara Docker Compose dan Dockerfile
Docker Compose dan Dockerfile ialah kedua-dua alat untuk membina dan mengurus bekas Docker, tetapi ia mempunyai fungsi dan penggunaan Way yang berbeza.
Fail Docker ialah fail teks yang digunakan untuk mentakrifkan peraturan pembinaan imej Docker. Ia mengandungi satu siri arahan untuk menentukan sistem pengendalian, persekitaran perisian, aplikasi, salinan fail dan maklumat lain apabila bekas sedang berjalan. Melalui Dockerfile, anda boleh membina imej Docker tersuai supaya imej itu boleh dijalankan pada mana-mana hos yang menyokong Docker.
Docker Compose ialah alat untuk mentakrif dan menjalankan berbilang bekas Docker. Dengan Docker Compose, anda boleh menggunakan fail YAML untuk menerangkan perkhidmatan, rangkaian, storan dan sumber lain aplikasi dan menggunakan satu arahan untuk memulakan, menghentikan, memulakan semula dan mengurus keseluruhan aplikasi. Dalam fail konfigurasi Docker Compose, berbilang bekas Docker boleh ditakrifkan, setiap bekas boleh menggunakan imej Docker tersuai, dan kebergantungan dan kaedah komunikasi antara bekas boleh ditentukan.
Oleh itu, Dockerfile lebih banyak digunakan untuk mencipta dan menyesuaikan imej Docker, manakala Docker Compose lebih banyak digunakan untuk mengurus berbilang bekas Docker supaya mereka boleh bekerjasama untuk membina aplikasi yang lengkap.
2. Contoh
Andaikan anda ingin menjalankan aplikasi web PHP pada sistem CentOS 7 dan menggunakan Nginx sebagai pelayan web Anda boleh menggunakan Dockerfile dan Docker Compose untuk capai.
Menggunakan Dockerfile, anda boleh mencipta imej PHP+Nginx tersuai, contohnya:
FROM php:7.4-fpm RUN apt-get update && apt-get install -y nginx COPY nginx.conf /etc/nginx/nginx.conf WORKDIR /var/www/html COPY src/ /var/www/html/ EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
Dockerfile ini berdasarkan imej PHP 7.4-fpm rasmi, memasang Nginx dan memasang aplikasi Salin kod ke direktori /var/www/html bekas. Imej itu juga memetakan port 80 bekas ke hos supaya aplikasi boleh diakses daripada hos melalui penyemak imbas.
Menggunakan Docker Compose, anda boleh menentukan fail YAML untuk memulakan dua bekas PHP dan Nginx pada masa yang sama dan menyambungkannya ke rangkaian Docker yang sama. Contohnya:
`version: '3' services: php: image: php:7.4-fpm volumes: - ./src:/var/www/html networks: - my-network nginx: image: nginx:latest ports: - "80:80" volumes: - ./nginx.conf:/etc/nginx/nginx.conf networks: - my-network networks: my-network:`
Fail Docker Compose ini mentakrifkan dua perkhidmatan: satu berdasarkan imej PHP 7.4-fpm rasmi dan satu lagi berdasarkan imej Nginx rasmi. Kedua-duanya memasang kod aplikasi tempatan dan fail konfigurasi Nginx dan menyambungkannya ke rangkaian Docker yang dipanggil my-network. Selain itu, port 80 kontena Nginx juga dipetakan ke port 80 hos.
Secara amnya, Dockerfile adalah lebih baik untuk mencipta dan menyesuaikan imej tunggal, manakala Docker Compose lebih baik untuk mengurus berbilang bekas dan menggabungkannya bersama-sama untuk membina aplikasi yang lengkap. Dalam contoh ini, anda boleh menggunakan Dockerfile untuk mencipta imej PHP+Nginx tersuai dan menggunakan Docker Compose untuk memulakan kedua-dua bekas PHP dan Nginx pada masa yang sama dan menyambungkannya ke rangkaian Docker yang sama.
Pembelajaran yang disyorkan: tutorial video buruh pelabuhan, tutorial penggunaan buruh pelabuhan
Atas ialah kandungan terperinci Mari kita bincangkan tentang perbezaan antara Docker Compose dan Dockerfile. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!