Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Fokus pada cara menggunakan direktori yang berbeza dalam Perkhidmatan Docker

Fokus pada cara menggunakan direktori yang berbeza dalam Perkhidmatan Docker

PHPz
PHPzasal
2023-04-19 15:26:53735semak imbas

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:

  • Ketersediaan tinggi: Perkhidmatan Docker boleh dicapai dengan mudah. ketersediaan bekas yang tinggi, walaupun jika nod gagal, kejadian kontena baharu boleh dimulakan secara automatik pada nod lain melalui fungsi pengimbangan automatik bekas.
  • Pengimbangan beban: Menggunakan Perkhidmatan Docker boleh mencapai pengimbangan beban dengan mudah, supaya aplikasi pengguna sentiasa berada dalam keadaan terbaik tanpa perlu memberi perhatian kepada isu pengimbangan beban.
  • Peluasan automatik: Perkhidmatan Docker menyokong pengembangan automatik Pengguna hanya perlu melaraskan bilangan bekas untuk mencapai pengembangan aplikasi.

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.

  1. Buat struktur direktori

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.

  1. Menulis Fail Docker

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.

  1. Menulis fail docker-compose.yml

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.

  1. Kerahkan perkhidmatan

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
  1. Uji perkhidmatan

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!

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