Rumah >Peranti teknologi >industri IT >Kedalaman fungsi docker dan docker menyusun
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:
<code class="language-bash">mkdir flask-redis-example cd flask-redis-example</code>
: app.py
<code class="language-bash">nano app.py</code>
<code class="language-python">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)</code>simpan dan keluar dari fail. Kod kelalang ini menyambung ke pangkalan data Redis dan meningkatkan kaunter setiap kali URL root diakses.
<code class="language-bash">sudo ufw allow 5000 sudo ufw reload</code>
: requirements.txt
<code class="language-bash">nano requirements.txt</code>
<code>flask redis</code>simpan dan tutup fail.
dan masukkannya: flask-redis-example
<code class="language-bash"> mkdir static cd static</code>
: styles.css
<code class="language-bash"> nano styles.css</code>
<code class="language-css"> 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; }</code>simpan dan keluar dari fail.
dan masukkannya: flask-redis-example
<code class="language-bash"> mkdir templates cd templates</code>
: index.html
<code class="language-bash"> nano index.html</code>
<code class="language-html"> <!DOCTYPE html> <title>Flask App</title> <link rel="stylesheet" href="%7B%7B%20url_for('static',%20filename='styles.css')%20%7D%7D"> <h1>Hello, World!</h1> <p>I have been seen {{ count }} times.</p> </code>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.
: flask-redis-example
<code class="language-bash">nano Dockerfile.flask</code>
<code class="language-dockerfile">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"]</code>simpan dan keluar dari fail.
<code class="language-bash">docker build -t flask-app .</code>
<code class="language-bash">docker login <url> -u <user> -p <password></password></user></url></code>Pastikan untuk menggantikan
, <url></url>
dan <user></user>
, yang disediakan di bahagian Gambaran Keseluruhan Pendaftaran Vultr Container anda. <password></password>
tag docker Image:
<code class="language-bash">mkdir flask-redis-example cd flask-redis-example</code>
memusingkan cermin ke pendaftaran kontena Vultr:
<code class="language-bash">nano app.py</code>
Selepas menolak imej Docker, sahkan bahawa imej wujud di bahagian "Repositori" dari pendaftaran kontena Vultr di papan pemuka Vultr.
Buat fail baru bernama docker-compose.yaml
:
<code class="language-python">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)</code>
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.
Bina Docker Compose File:
<code class="language-bash">sudo ufw allow 5000 sudo ufw reload</code>
Selepas proses binaan selesai, lawati aplikasi Flask pada http: //
Lebih banyak penggunaan pendaftaran kontena Vultr
Amalan Terbaik
docker-compose.yaml
Fail -fail yang dianjurkan dengan baik dan didokumentasikan dengan baik. 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!