Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Cara menggunakan Docker untuk penggunaan automatik dan rollback bekas

Cara menggunakan Docker untuk penggunaan automatik dan rollback bekas

WBOY
WBOYasal
2023-11-07 13:40:591074semak imbas

Cara menggunakan Docker untuk penggunaan automatik dan rollback bekas

Dengan populariti pengkomputeran awan dan perkhidmatan mikro, Docker, sebagai teknologi virtualisasi ringan, digunakan secara meluas dalam penggunaan kontena. Docker mempunyai kelebihan penggunaan pantas, pengasingan sumber dan pengurusan yang mudah, yang boleh memudahkan proses penyelenggaraan dan pelepasan aplikasi. Artikel ini akan memperkenalkan cara menggunakan Docker untuk penggunaan automatik dan rollback bekas, dan menyediakan beberapa contoh kod khusus.

1. Arahan automatik Docker

Arahan automatik Docker merujuk kepada persekitaran aplikasi dan maklumat berkaitan dengan menulis fail Dockerfile dan fail Docker Compose semasa proses pembangunan dan ujian dibungkus ke dalam imej Docker dan digunakan secara automatik ke pelayan tempatan atau jauh.

1. Tulis Fail Docker

Fail Docker ialah fail teks yang mengandungi semua arahan dan arahan yang diperlukan oleh aplikasi untuk membina imej. Anda boleh menulis fail Docker untuk mentakrifkan persekitaran, kebergantungan dan arahan permulaan yang diperlukan untuk aplikasi Anda hanya perlu melaksanakan satu arahan untuk membina imej Docker yang diperlukan untuk aplikasi secara automatik.

Berikut ialah contoh menggunakan fail Dockerfile untuk membina aplikasi Node.js:

FROM node:14-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]

Fail Dockerfile di atas menyatakan bahawa imej asas ialah imej asas alpine bagi Versi Node.js 14, ditakrifkan Tetapkan direktori kerja ke /app, salin package.json dan package-lock.json ke direktori kerja, jalankan pemasangan npm untuk memasang kebergantungan, salin kod aplikasi ke direktori kerja, tentukan port ke dipetakan oleh bekas sebagai 3000, dan akhirnya laksanakan npm start Mulakan aplikasi.

2. Fail Write Docker Compose

Docker Compose ialah alat yang disediakan secara rasmi oleh Docker untuk mentakrif dan menjalankan aplikasi yang terdiri daripada berbilang bekas. Dengan menulis fail Docker Compose, anda boleh menentukan perkhidmatan yang diperlukan oleh aplikasi, imej dan kaedah permulaan bekas, rangkaian dan kebergantungan antara bekas dan maklumat lain, serta had sumber dan pengembangan bekas.

Berikut ialah contoh menggunakan Docker Compose untuk menggunakan aplikasi Node.js:

version: '3'

services:
  app:
    build: .
    ports:
      - '8080:3000'
    environment:
      NODE_ENV: production
    restart: always

Perkhidmatan bernama apl ditakrifkan dalam fail Docker Compose di atas dan binaan arahan digunakan untuk membina imej , memetakan port kontena ke hos port 8080, mentakrifkan pembolehubah persekitaran NODE_ENV sebagai pengeluaran, dan nyatakan bahawa bekas akan dimulakan semula secara automatik selepas ia turun.

3. Skrip pengerahan automatik

Untuk menjadikan proses penggunaan aplikasi lebih automatik, anda boleh menulis beberapa skrip penggunaan untuk membina, menolak dan menggunakan keseluruhan proses Docker secara automatik imej. Berikut ialah contoh menggunakan Docker Compose untuk menggunakan aplikasi Node.js secara automatik:

#!/bin/bash

# 定义应用名称和版本号
APP_NAME='nodejs-app'
TAG=$(git rev-parse --short HEAD)

# 构建Docker镜像
docker build -t $APP_NAME:$TAG .

# 推送Docker镜像到仓库
docker push $APP_NAME:$TAG

# 使用Docker Compose部署应用
docker-compose up -d

Dalam skrip di atas, gunakan perintah git rev-parse untuk mendapatkan nombor versi kod terkini, bina imej dan tolaknya ke gudang Docker, dan akhirnya Gunakan Docker Compose untuk memulakan aplikasi (parameter-d menunjukkan berjalan di latar belakang).

2. Balik semula bekas Docker

Semasa proses pembangunan dan ujian aplikasi, beberapa ralat kod atau isu ketidakserasian pasti akan berlaku. Pada masa ini, kami perlu melancarkan semula versi aplikasi dan memulihkan aplikasi kepada keadaan sebelumnya.

Bekas Docker menyediakan kaedah pemulangan semula yang mudah, iaitu, menentukan nombor versi melalui teg Anda boleh memilih versi imej yang berbeza apabila bekas itu mula melaksanakan pemulangan versi aplikasi.

1. Gunakan tag

Apabila menentukan nombor versi dalam fail Dockerfile, anda boleh menggunakan tag untuk mengenal pasti versi aplikasi. Contohnya:

FROM node:14-alpine

LABEL version="1.0.0"

WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]

Arahan LABEL yang digunakan dalam fail Dockerfile di atas mengenal pasti nombor versi aplikasi sebagai 1.0.0.

Selepas membina imej, anda boleh menggunakan arahan tag docker untuk mencipta teg baharu, contohnya:

docker tag nodejs-app:latest nodejs-app:1.0.0

Apabila mentakrifkan perkhidmatan dalam fail Docker Compose, anda boleh nyatakan tag yang perlu digunakan. (Tag), contohnya:

version: '3'

services:
  app:
    image: nodejs-app:1.0.0
    ports:
      - '8080:3000'
    environment:
      NODE_ENV: production
    restart: always

2 Skrip Rollback

Untuk memudahkan versi rollback, anda boleh menulis skrip rollback. dengan menyatakan versi imej yang perlu digunakan. Berikut ialah contoh penggunaan Docker Compose untuk melancarkan semula aplikasi Node.js:

#!/bin/bash

# 定义应用名称和版本号
APP_NAME='nodejs-app'
TAG='1.0.0'

# 更新Docker Compose文件中使用的镜像版本
sed -i "s|$APP_NAME:.*|$APP_NAME:$TAG|g" docker-compose.yml

# 回滚应用版本
docker-compose up -d

Dalam skrip di atas, ubah suai terus nombor versi imej yang digunakan dalam fail Docker Compose dan mulakan bekas.

3. Ringkasan

Artikel ini memperkenalkan cara menggunakan Docker untuk penggunaan automatik dan rollback bekas, dan menyediakan beberapa contoh kod khusus. Melalui penggunaan automatik, kami boleh menggunakan dan mengemas kini aplikasi dengan cepat, serta melancarkan versi apabila perlu, meningkatkan kestabilan dan kebolehpercayaan aplikasi. Walau bagaimanapun, dalam aplikasi sebenar, strategi penggunaan perlu dioptimumkan berdasarkan keperluan perniagaan dan persekitaran khusus untuk memastikan operasi biasa aplikasi.

Atas ialah kandungan terperinci Cara menggunakan Docker untuk penggunaan automatik dan rollback bekas. 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