Rumah > Peranti teknologi > industri IT > Kedalaman fungsi docker dan docker menyusun

Kedalaman fungsi docker dan docker menyusun

Lisa Kudrow
Lepaskan: 2025-02-08 09:06:11
asal
667 orang telah melayarinya

The Functional Depth of Docker and Docker Compose

Bina aplikasi flask multi-kontainer menggunakan Docker Compose dan Vultr Container Registry

Docker Compose membolehkan pengguna menjalankan dan menentukan aplikasi multi-kontainer menggunakan fail konfigurasi tunggal. Ia memudahkan proses menubuhkan dan menguruskan pelbagai bekas, menjadikannya lebih mudah untuk membangun, menguji, dan menggunakan aplikasi. Artikel ini akan membimbing anda untuk membuat aplikasi flask dengan dua bekas, menguruskan imej docker aplikasi anda menggunakan Registry Container Vultr (VCR), dan menguruskan beberapa bekas dengan fungsi multi-kontainer yang dikarang Docker.

Penciptaan aplikasi sampel

Langkah -langkah berikut akan membimbing anda untuk membuat aplikasi sampel:

  1. Menyebarkan contoh pengiraan Vultr menggunakan aplikasi pasaran Docker melalui portal pelanggan Vultr.

  2. Gunakan SSH untuk mengakses pelayan dengan selamat dengan pengguna sudo bukan akar.

  3. Kemas kini pelayan.

  4. Buat direktori projek baru dan masukkannya:

    mkdir flask-redis-example
    cd flask-redis-example
    Salin selepas log masuk
    Salin selepas log masuk
  5. Buat fail baru bernama

    : app.py

    nano app.py
    Salin selepas log masuk
    Salin selepas log masuk
  6. tambahkan kod berikut:

    from flask import Flask, render_template
    import redis
    
    app = Flask(__name__)
    redis_client = redis.Redis(host='redis', port=6379)
    
    @app.route('/')
    def hello():
        count = redis_client.incr('hits')
        return render_template('index.html', count=count)
    
    if __name__ == '__main__':
        app.run(host='0.0.0.0', port=5000)
    Salin selepas log masuk
    Salin selepas log masuk
    simpan dan keluar dari fail. Kod kelalang ini menyambung ke pangkalan data Redis dan meningkatkan kaunter setiap kali URL root diakses.

  7. Benarkan sambungan masuk ke port 5000 dan tambah semula firewall:

    sudo ufw allow 5000
    sudo ufw reload
    Salin selepas log masuk
    Salin selepas log masuk
  8. Buat fail baru bernama

    : requirements.txt

    nano requirements.txt
    Salin selepas log masuk
  9. tambahkan pakej berikut:

    <code>flask
    redis</code>
    Salin selepas log masuk
    simpan dan tutup fail.

  10. Buat direktori lain dalam direktori

    dan masukkannya: flask-redis-example

     mkdir static
     cd static
    Salin selepas log masuk
  11. Buat fail baru bernama

    : styles.css

     nano styles.css
    Salin selepas log masuk
  12. tambahkan kod berikut:

     body {
         font-family: Arial, sans-serif;
         text-align: center;
         background-color: #f4f4f4;
         margin: 0;
         padding: 0;
     }
    
     h1 {
         color: #333;
         margin-top: 50px;
     }
    
     p {
         font-size: 18px;
         color: #666;
     }
    Salin selepas log masuk
    simpan dan keluar dari fail.

  13. Buat direktori lain dalam direktori

    dan masukkannya: flask-redis-example

     mkdir templates
     cd templates
    Salin selepas log masuk
  14. Buat fail baru bernama

    : index.html

     nano index.html
    Salin selepas log masuk
  15. tambahkan kod berikut:

     <!DOCTYPE html>
     <html>
     <head>
         <title>Flask App</title>
         <link rel="stylesheet" href="{{ url_for('static', filename='styles.css') }}">
     </head>
     <body>
         <h1>Hello, World!</h1>
         <p>I have been seen {{ count }} times.</p>
     </body>
     </html>
    Salin selepas log masuk
    simpan dan keluar dari fail.

Menggunakan pendaftaran kontena Vultr

Dalam bahagian ini, anda akan membuat pendaftaran kontena Vultr, memuat naik imej Docker anda ke pendaftaran, dan sediakan fail Docker untuk menyediakan perkhidmatan pangkalan data Flask dan Redis.

  1. menggunakan pendaftaran kontena Vultr.

  2. Buat manifes Docker dalam direktori

    : flask-redis-example

    nano Dockerfile.flask
    Salin selepas log masuk
  3. Tambahkan konfigurasi berikut:

    FROM python:3.9-slim
    
    WORKDIR /app
    
    COPY requirements.txt .
    RUN pip install --no-cache-dir -r requirements.txt
    
    COPY app.py .
    COPY static/ ./static/
    COPY templates/ ./templates/
    
    EXPOSE 5000
    
    CMD ["python", "app.py"]
    Salin selepas log masuk
    simpan dan keluar dari fail.

  4. Bangun Docker Image:

    docker build -t flask-app .
    Salin selepas log masuk
  5. Log masuk ke pendaftaran Vultr Container anda:

    docker login <url> -u <user> -p <password>
    Salin selepas log masuk
    Pastikan untuk menggantikan

    , <url> dan <user>, yang disediakan di bahagian Gambaran Keseluruhan Pendaftaran Vultr Container anda. <password>

  6. tag docker Image:

    mkdir flask-redis-example
    cd flask-redis-example
    Salin selepas log masuk
    Salin selepas log masuk
  7. memusingkan cermin ke pendaftaran kontena Vultr:

    nano app.py
    Salin selepas log masuk
    Salin selepas log masuk

    Selepas menolak imej Docker, sahkan bahawa imej wujud di bahagian "Repositori" dari pendaftaran kontena Vultr di papan pemuka Vultr.

  8. Buat fail baru bernama docker-compose.yaml:

    from flask import Flask, render_template
    import redis
    
    app = Flask(__name__)
    redis_client = redis.Redis(host='redis', port=6379)
    
    @app.route('/')
    def hello():
        count = redis_client.incr('hits')
        return render_template('index.html', count=count)
    
    if __name__ == '__main__':
        app.run(host='0.0.0.0', port=5000)
    Salin selepas log masuk
    Salin selepas log masuk

    simpan dan keluar dari fail. Konfigurasi YAML di atas mentakrifkan dua perkhidmatan web dan redis. Perkhidmatan web membina aplikasi flask dari direktori semasa (.) Dan memetakan pelabuhan kontena 5000 ke port 5000 tuan rumah. Ia juga menyatakan bahawa perkhidmatan web bergantung kepada perkhidmatan redis. redis Perkhidmatan menggunakan imej Redis Docker rasmi dari Docker Hub.

  9. Bina Docker Compose File:

    sudo ufw allow 5000
    sudo ufw reload
    Salin selepas log masuk
    Salin selepas log masuk

    Selepas proses binaan selesai, lawati aplikasi Flask pada http: // : 5000. Cuba menyegarkan laman web beberapa kali dan perhatikan sama ada kiraan lawatan halaman meningkat.

Lebih banyak penggunaan pendaftaran kontena Vultr

  • pendaftaran kontena Vultr dengan Docker
  • Pendaftaran Vultr Container dengan Kubernetes
  • membina imej kontena vllm
  • membina imej kontena llama.cpp
  • membina imej kontena pytorch

Amalan Terbaik

  • simpan docker-compose.yaml Fail -fail yang dianjurkan dengan baik dan didokumentasikan dengan baik.
  • Gunakan jumlah yang dinamakan untuk meneruskan data dan bukannya mengikat direktori tuan rumah.
  • Gunakan pembolehubah persekitaran untuk menyimpan data sensitif seperti kata laluan dan kekunci API.
  • Gunakan perintah terbina dalam Docker mengarang, seperti docker-compose up, docker-compose down, dan docker-compose ps untuk menguruskan bekas.

Kesimpulan

Dalam artikel ini, anda membuat aplikasi flask dengan dua bekas, menggunakan pendaftaran kontena Vultr untuk menguruskan imej docker aplikasi, dan mengambil kesempatan daripada fungsi multi-kontainer Docker yang dikarang untuk menguruskan pelbagai bekas.

Artikel ini ditaja oleh Vultr. Vultr adalah platform pengkomputeran awan swasta terbesar di dunia. Kegemaran di kalangan pemaju, Vultr telah menyediakan pengkomputeran awan global yang fleksibel dan berskala, GPU awan, penyelesaian penyimpanan logam dan awan kepada lebih daripada 1.5 juta pelanggan di 185 negara. Ketahui lebih lanjut mengenai Vultr

Atas ialah kandungan terperinci Kedalaman fungsi docker dan docker menyusun. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan