Docker ialah teknologi kontena yang sangat popular yang boleh membina, menggunakan dan menjalankan aplikasi dengan cepat dan cekap. Perkhidmatan Docker ialah salah satu mekanisme yang paling biasa digunakan untuk pengurusan kluster Docker. Menggunakan Perkhidmatan Docker, pengguna boleh menggabungkan berbilang bekas Docker ke dalam satu perkhidmatan untuk mencapai ketersediaan tinggi, pengimbangan beban dan tujuan lain. Artikel ini akan memberi tumpuan kepada cara menggunakan direktori yang berbeza dalam Perkhidmatan Docker.
Apakah itu Perkhidmatan Docker?
Perkhidmatan Docker ialah salah satu mekanisme untuk pengurusan kluster Docker Ia boleh menggabungkan berbilang bekas Docker ke dalam satu perkhidmatan. Perkhidmatan Docker melaksanakan fungsi seperti ketersediaan tinggi, pengimbangan beban dan pengembangan automatik, yang boleh membantu pengguna mengoptimumkan perkhidmatan dan aplikasi.
Perkhidmatan Docker menyokong strategi penggunaan yang berbeza, seperti replika dan global. Apabila menggunakan dasar replika, pengguna boleh menentukan bilangan bekas untuk dilancarkan dan Enjin Docker akan menggunakan dan mengurus kejadian kontena secara automatik merentas kluster. Apabila menggunakan strategi global, Docker Engine akan memulakan salinan bekas dan menggunakannya ke setiap nod dalam kelompok.
Faedah menggunakan Perkhidmatan Docker
Menggunakan Perkhidmatan Docker boleh membawa banyak faedah, berikut adalah beberapa faedah utama:
Bagaimanakah Perkhidmatan Docker menggunakan direktori yang berbeza?
Perkhidmatan Docker menggunakan direktori tempat Fail Docker terletak sebagai konteks binaan imej kontena secara lalai. Walau bagaimanapun, apabila kita perlu membina imej yang berbeza dalam direktori yang berbeza, kita perlu menggunakan konteks binaan yang berbeza.
Berikut akan memperkenalkan cara menggunakan direktori berbeza untuk membina imej Docker dan menggunakan Perkhidmatan Docker untuk menggunakan aplikasi.
Pertama, kami mencipta struktur direktori berikut:
. ├── dockerfiles │ ├── web1 │ │ ├── Dockerfile │ │ └── index.html │ └── web2 │ ├── Dockerfile │ └── index.html ├── docker-compose.yml └── services.yml
Dalam direktori dockerfiles, kami mencipta web1 dan web2 masing-masing Dua direktori. Setiap direktori mengandungi fail Dockerfile dan fail index.html. Antaranya, fail Dockerfile digunakan untuk membina imej Docker, dan fail index.html digunakan untuk menguji sama ada bekas berjalan seperti biasa.
Dalam fail services.yml, kami mentakrifkan perkhidmatan bernama web untuk menggunakan dua bekas, web1 dan web2.
Dalam contoh kami, kami telah mencipta Fail Docker untuk web1 dan web2 masing-masing. Ia adalah seperti berikut:
Fail Docker dalam direktori web1:
FROM nginx COPY index.html /usr/share/nginx/html
Fail Docker dalam direktori web2:
FROM nginx WORKDIR /usr/share/nginx/html COPY index.html .
Di sini kami menggunakan fail Fail Docker yang berbeza dan menggunakan konteks binaan yang berbeza dalam setiap fail. Dockerfile web1 menggunakan arahan COPY, yang menyalin fail index.html daripada konteks binaan yang ditentukan ke dalam bekas. Fail Docker web2 menggunakan arahan WORKDIR dan arahan COPY, yang akan menetapkan direktori kerja kepada /usr/share/nginx/html dan menyalin fail index.html daripada konteks binaan ke bekas.
Kami masih menggunakan fail docker-compose.yml untuk menentukan perkhidmatan kami. Kandungan fail adalah seperti berikut:
version: '3.7' services: web1: build: context: ./dockerfiles/web1 image: web1 deploy: replicas: 2 ports: - 8081:80 web2: build: context: ./dockerfiles/web2 image: web2 deploy: replicas: 3 ports: - 8082:80
Dalam fail docker-compose.yml, kami mentakrifkan dua perkhidmatan: web1 dan web2, yang masing-masing menggunakan konteks binaan yang berbeza. Pada masa yang sama, kami juga menentukan replika dan atribut port bagi setiap perkhidmatan untuk mengawal bilangan kontena dan pemetaan port.
Akhir sekali, kami menggunakan arahan Docker Stack untuk menggunakan perkhidmatan:
$ docker stack deploy -c services.yml myapp
Selepas pelaksanaan arahan selesai, kita boleh menggunakan arahan berikut Semak status perkhidmatan:
$ docker stack ps myapp
Selepas penggunaan perkhidmatan selesai, kami boleh menggunakan penyemak imbas untuk akses URL berikut untuk menguji sama ada perkhidmatan web1 dan web2 adalah biasa:
servis web1:
http://localhost:8081
perkhidmatan web2:
http://localhost:8082
Jika semuanya berfungsi baik, kami akan melihat kandungan fail index.html pada setiap perkhidmatan .
Ringkasan
Dalam artikel ini, kami memperkenalkan cara menggunakan direktori berbeza untuk pembinaan kontena dalam Perkhidmatan Docker. Kami mencipta dua perkhidmatan dengan Dockerfiles yang berbeza dan menentukan konteks binaan perkhidmatan dalam fail docker-compose.yml. Akhirnya, kami menggunakan perkhidmatan dan menguji bahawa perkhidmatan itu berjalan dengan betul. Ini menyediakan cara yang mudah untuk pengguna yang menggunakan Perkhidmatan Docker untuk membina imej kontena dalam direktori yang berbeza.
Atas ialah kandungan terperinci Fokus pada cara menggunakan direktori yang berbeza dalam Perkhidmatan Docker. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!