Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menjelaskan cara mengambil proyek Python—seperti aplikasi web—dan menyebarkannya sebagai kontainer Docker di Azure. Ini mencakup alur kerja kontainerisasi umum, opsi penyebaran Azure untuk kontainer, dan konfigurasi kontainer khusus Python dalam Azure. Membangun dan menyebarkan kontainer Docker di Azure mengikuti proses standar di seluruh bahasa, dengan konfigurasi khusus Python di Dockerfile, requirements.txt, dan pengaturan untuk kerangka kerja web seperti Django, Flask, dan FastAPI.
Skenario alur kerja kontainer
Untuk pengembangan kontainer Python, beberapa alur kerja umum untuk berpindah dari kode ke kontainer dibahas dalam tabel berikut.
Skenario | Deskripsi | Alur kerja |
---|---|---|
Dev | Buat gambar Python Docker secara lokal di lingkungan pengembangan Anda. |
Kode: Klon kode aplikasi Anda secara lokal menggunakan Git (dengan Docker terinstal). Build: Gunakan Docker CLI, VS Code (dengan ekstensi), PyCharm (dengan plugin Docker). Dijelaskan di bagian Bekerja dengan gambar dan kontainer Python Docker. Uji: Jalankan dan uji kontainer secara lokal. Pendorongan: Dorong gambar ke registri kontainer seperti Azure Container Registry, Docker Hub, atau registri privat. Sebarkan: Sebarkan kontainer dari registri ke layanan Azure. |
Hibrida | Buat gambar Docker di Azure, tetapi mulai proses dari lingkungan lokal Anda. |
Kode: Klon kode secara lokal (tidak diperlukan agar Docker diinstal). Build: Untuk memicu build di Azure, gunakan Visual Studio Code (dengan ekstensi jarak jauh) atau Azure CLI. Push: Push image yang sudah dibangun ke Azure Container Registry. Sebarkan: Sebarkan kontainer dari registri ke layanan Azure. |
Azure | Gunakan Azure Cloud Shell untuk membangun dan menyebarkan kontainer sepenuhnya di cloud. |
Kode: Mengkloning repositori GitHub di Azure Cloud Shell. Build: Gunakan Azure CLI atau Docker CLI di Cloud Shell. Pendorongan: Dorong gambar ke registri seperti Azure Container Registry, Docker Hub, atau registri privat. Sebarkan: Sebarkan kontainer dari registri ke layanan Azure. |
Tujuan akhir alur kerja ini adalah agar kontainer berjalan di salah satu sumber daya Azure yang mendukung kontainer Docker seperti yang tercantum di bagian berikutnya.
Lingkungan dev dapat berupa:
- Stasiun kerja lokal Anda dengan Visual Studio Code atau PyCharm
- Codespace ( lingkungan pengembangan yang dihosting di cloud)
- Kontainer Dev Visual Studio (kontainer sebagai lingkungan pengembangan)
Opsi wadah untuk penyebaran di Azure
Aplikasi kontainer Python didukung di layanan berikut.
Pelayanan | Deskripsi |
---|---|
Aplikasi Web untuk Kontainer | Azure App Service adalah platform hosting yang dikelola sepenuhnya untuk aplikasi web kontainer, termasuk situs web dan API web. Ini mendukung penyebaran yang dapat diskalakan dan terintegrasi dengan lancar dengan alur kerja CI/CD menggunakan Docker Hub, Azure Container Registry, dan GitHub. Layanan ini sangat ideal untuk pengembang yang menginginkan jalur sederhana dan efisien untuk menyebarkan aplikasi kontainer, sekaligus mendapat manfaat dari kemampuan penuh platform Azure App Service. Dengan mengemas aplikasi Anda dan semua dependensinya ke dalam satu kontainer yang dapat disebarkan, Anda mendapatkan portabilitas dan kemudahan manajemen—tanpa perlu mengelola infrastruktur.
Contoh: Menyebarkan aplikasi web Flask atau FastPI di Azure App Service. |
Azure Container Apps (ACA) | Azure Container Apps (ACA) adalah layanan kontainer tanpa server yang dikelola sepenuhnya yang didukung oleh Kubernetes dan teknologi sumber terbuka seperti Dapr, KEDA, dan utusan. Desainnya menggabungkan praktik terbaik industri dan dioptimalkan untuk mengeksekusi kontainer tujuan umum. ACA mengabstraksi kompleksitas pengelolaan infrastruktur Kubernetes—akses langsung ke API Kubernetes tidak diperlukan atau didukung. Sebaliknya, ia menawarkan konstruksi aplikasi tingkat lebih tinggi seperti revisi, penskalaan, sertifikat, dan lingkungan untuk menyederhanakan alur kerja pengembangan dan penyebaran. Layanan ini sangat ideal untuk tim pengembangan yang ingin membangun dan menyebarkan layanan mikro kontainer dengan overhead operasional minimal, memungkinkan mereka untuk fokus pada logika aplikasi alih-alih manajemen infrastruktur. Contoh: Menyebarkan aplikasi web Flask atau FastPI di Azure Container Apps. |
Layanan Kontainer Azure (ACI) | Azure Container Instances (ACI) adalah penawaran tanpa server yang menyediakan satu pod kontainer Hyper-V terisolasi sesuai permintaan. Pembayaran didasarkan pada konsumsi sumber daya aktual daripada infrastruktur yang dialokasikan sebelumnya, membuatnya cocok untuk beban kerja jangka pendek atau yang bisa meningkat pesat. Tidak seperti layanan kontainer lainnya, ACI tidak menyertakan dukungan bawaan untuk konsep seperti penskalaan, penyeimbangan beban, atau sertifikat TLS. Sebaliknya, biasanya berfungsi sebagai blok penyusun kontainer dasar, sering terintegrasi dengan layanan Azure seperti Azure Kubernetes Service (AKS) untuk orkestrasi. ACI unggul sebagai pilihan ringan ketika abstraksi dan fitur tingkat yang lebih tinggi dari Azure Container Apps tidak diperlukan Contoh: Membuat gambar kontainer untuk penyebaran ke Azure Container Instances. (Tutorial ini tidak spesifik untuk Python, tetapi konsep yang ditampilkan berlaku untuk semua bahasa.) |
Azure Kubernetes Service (AKS) | Azure Kubernetes Service (AKS) adalah opsi Kubernetes yang dikelola sepenuhnya di Azure yang memberi Anda kontrol penuh atas lingkungan Kubernetes Anda. Ini mendukung akses langsung ke API Kubernetes dan dapat menjalankan beban kerja Kubernetes standar apa pun. Kluster lengkap berada di langganan Anda, dengan konfigurasi dan operasi kluster dalam kontrol dan tanggung jawab Anda. ACI sangat ideal untuk tim yang mencari solusi kontainer yang dikelola sepenuhnya, sementara AKS memberi Anda kontrol penuh atas kluster Kubernetes, mengharuskan Anda mengelola konfigurasi, jaringan, penskalaan, dan operasi. Azure menangani sarana kontrol dan provisi infrastruktur, tetapi operasi dan keamanan kluster sehari-hari berada dalam kontrol tim Anda. Layanan ini sangat ideal untuk tim yang menginginkan fleksibilitas dan kekuatan Kubernetes dengan keuntungan tambahan dari infrastruktur terkelola Azure, sambil tetap mempertahankan kepemilikan penuh atas lingkungan kluster.
Contoh: Sebarkan kluster Azure Kubernetes Service menggunakan Azure CLI. |
Azure Functions | Azure Functions menawarkan platform Functions-as-a-Service (FaaS) tanpa server berbasis peristiwa yang memungkinkan Anda menjalankan potongan-potongan kecil kode (fungsi) sebagai respons terhadap peristiwa—tanpa mengelola infrastruktur. Azure Functions memiliki banyak kesamaan dengan Azure Container Apps dalam hal skala dan integrasi dengan peristiwa, tetapi dioptimalkan untuk fungsi jangka pendek yang diterapkan sebagai kode atau kontainer. AL untuk tim yang ingin memicu pelaksanaan fungsi berdasarkan peristiwa; misalnya, untuk mengaitkan dengan sumber data lain. Seperti Azure Container Apps, Azure Functions mendukung penskalaan dan integrasi otomatis dengan sumber peristiwa (misalnya, permintaan HTTP, antrean pesan, atau pembaruan penyimpanan blob). Layanan ini sangat ideal untuk tim yang membangun alur kerja yang ringan dan dipicu peristiwa, seperti memproses unggahan file atau merespons perubahan database, dalam Python atau bahasa lain.
Contoh: Buat fungsi di Linux menggunakan kontainer kustom. |
Untuk perbandingan yang lebih rinci dari layanan ini, lihat Membandingkan Aplikasi Kontainer dengan opsi kontainer Azure lainnya.
Lingkungan virtual dan kontainer
Lingkungan virtual di Python mengisolasi dependensi proyek dari penginstalan Python tingkat sistem, memastikan konsistensi di seluruh lingkungan pengembangan. Lingkungan virtual mencakup penerjemah Python terisolasi sendiri, bersama dengan pustaka dan skrip yang diperlukan untuk menjalankan kode proyek tertentu dalam lingkungan tersebut. Dependensi untuk proyek Python dikelola melalui file requirements.txt . Dengan menentukan dependensi dalam file requirements.txt , pengembang dapat mereproduksi lingkungan yang tepat yang diperlukan untuk proyek mereka. Pendekatan ini memfasilitasi transisi yang lebih lancar ke penyebaran kontainer seperti Azure App Service, di mana konsistensi lingkungan sangat penting untuk performa aplikasi yang andal.
Petunjuk / Saran
Dalam proyek Python dalam kontainer, lingkungan virtual biasanya tidak perlu karena kontainer Docker menyediakan lingkungan terisolasi dengan interpreter dan dependensi Python mereka sendiri. Namun, Anda dapat menggunakan lingkungan virtual untuk pengembangan atau pengujian lokal. Untuk menjaga gambar Docker tetap ramping, kecualikan lingkungan virtual dengan menggunakan file .dockerignore, yang mencegah penyalinan file yang tidak perlu ke dalam gambar tersebut.
Anda dapat menganggap kontainer Docker sebagai kapabilitas yang mirip dengan lingkungan virtual Python—tetapi dengan keuntungan yang lebih luas dalam reproducibilitas, isolasi, dan portabilitas. Tidak seperti lingkungan virtual, kontainer Docker dapat berjalan secara konsisten di berbagai sistem operasi dan lingkungan, selama runtime kontainer tersedia.
Kontainer Docker menyertakan kode proyek Python Anda bersama dengan semua yang perlu dijalankan, seperti dependensi, pengaturan lingkungan, dan pustaka sistem. Untuk membuat kontainer, Anda terlebih dahulu membuat gambar Docker dari kode dan konfigurasi proyek Anda, lalu memulai kontainer, yang merupakan instans gambar yang dapat dijalankan.
Untuk kontainerisasi proyek Python, file kunci dijelaskan dalam tabel berikut:
File proyek | Deskripsi |
---|---|
requirements.txt | File ini berisi daftar pasti dependensi Python yang diperlukan untuk aplikasi Anda. Docker menggunakan daftar ini selama proses build gambar untuk menginstal semua paket yang diperlukan. Ini memastikan konsistensi antara lingkungan pengembangan dan penyebaran. |
Dockerfile | File ini berisi instruksi untuk membangun gambar Python Docker Anda, termasuk pemilihan gambar dasar, penginstalan dependensi, penyalinan kode, dan perintah startup kontainer. Ini mendefinisikan lingkungan eksekusi lengkap untuk aplikasi Anda. Untuk informasi selengkapnya, lihat bagian Instruksi dockerfile untuk Python. |
.dockerignore | File ini menentukan file dan direktori yang harus dikecualikan saat menyalin konten ke gambar Docker dengan COPY perintah di Dockerfile. File ini menggunakan pola yang mirip dengan .gitignore untuk menentukan pengecualian. File .dockerignore mendukung pola pengecualian yang mirip dengan file .gitignore . Untuk informasi selengkapnya, lihat file .dockerignore. Mengecualikan file membantu performa pembuatan citra, tetapi juga harus digunakan untuk menghindari penambahan informasi sensitif ke dalam citra yang dapat diperiksa. Misalnya, .dockerignore harus berisi baris untuk mengabaikan .env dan .venv (lingkungan virtual). |
Pengaturan kontainer untuk kerangka kerja web
Kerangka kerja web biasanya mengikat port default (seperti 5000 untuk Flask, 8000 untuk FastAPI). Saat Anda menyebarkan kontainer ke layanan Azure, seperti Azure Container Instances, Azure Kubernetes Service (AKS), atau App Service for Containers, penting untuk mengekspos dan mengonfigurasi port pendengar kontainer secara eksplisit untuk memastikan perutean lalu lintas masuk yang tepat. Mengonfigurasi port yang benar memastikan bahwa infrastruktur Azure dapat mengarahkan permintaan ke titik akhir yang benar di dalam kontainer Anda.
Kerangka kerja web | Pelabuhan |
---|---|
Django | delapan ribu |
Labu | 5000 atau 5002 |
FastAPI (uvicorn) | 8000 atau 80 |
Tabel berikut ini memperlihatkan cara mengatur port untuk solusi kontainer Azure yang berbeda.
Solusi kontainer Azure | Cara mengatur port aplikasi web |
---|---|
Aplikasi Web untuk Kontainer | Secara default, App Service mengasumsikan kontainer kustom Anda mendengarkan di port 80 atau port 8080. Jika kontainer Anda mendengarkan port yang berbeda, atur WEBSITES_PORT setelan aplikasi di aplikasi App Service Anda. Untuk informasi selengkapnya, lihat Mengonfigurasi kontainer kustom untuk Azure App Service. |
Azure Containers Apps (Aplikasi Wadah Azure) | Azure Container Apps memungkinkan Anda mengekspos aplikasi kontainer ke web publik, ke jaringan virtual Anda, atau ke aplikasi kontainer lain dalam lingkungan yang sama dengan mengaktifkan ingress. Atur ingress targetPort kepada port yang didengarkan oleh kontainer Anda untuk permintaan yang masuk. Titik akhir ingress aplikasi selalu diekspos pada port 443. Untuk informasi selengkapnya, lihat Menyiapkan https atau masuknya TCP di Azure Container Apps. |
Azure Container Instances, Azure Kubernetes | Anda menentukan port tempat aplikasi anda mendengarkan selama pembuatan kontainer atau pod. Gambar kontainer Anda harus menyertakan kerangka kerja web, server aplikasi (misalnya, gunicorn, uvicorn), dan secara opsional server web (misalnya, nginx). Dalam skenario yang lebih kompleks, Anda mungkin membagi tanggung jawab di dua kontainer—satu untuk server aplikasi dan satu lagi untuk server web. Dalam hal ini, kontainer server web biasanya mengekspos port 80 atau 443 untuk lalu lintas eksternal. |
Python Dockerfile
Dockerfile adalah file teks yang berisi instruksi untuk membangun gambar Docker untuk aplikasi Python. Instruksi pertama biasanya menentukan gambar dasar untuk memulai. Instruksi berikutnya kemudian merinci tindakan seperti menginstal perangkat lunak yang diperlukan, menyalin file aplikasi, dan mengonfigurasi lingkungan untuk membuat gambar yang dapat dijalankan. Tabel berikut ini menyediakan contoh khusus Python untuk instruksi Dockerfile yang umum digunakan.
Instruksi | Tujuan | Contoh |
---|---|---|
DARI | Mengatur gambar dasar untuk instruksi berikutnya. | FROM python:3.8-slim |
MEMBONGKAR | Memberi tahu Docker bahwa kontainer mendengarkan port tertentu saat runtime. | EXPOSE 5000 |
MENYALIN | Menyalin file atau direktori dari sumber yang ditentukan dan menambahkannya ke sistem file kontainer di jalur tujuan yang ditentukan. | COPY . /app |
LARI | Menjalankan perintah di dalam gambar Docker. Misalnya, tambahkan ketergantungan. Perintah dijalankan sekali saat proses build. | RUN python -m pip install -r requirements.txt |
CMD | Perintah menyediakan default untuk menjalankan kontainer. Hanya ada satu instruksi CMD. | CMD ["gunicorn", "--bind", "0.0.0.0:5000", "wsgi:app"] |
Perintah build Docker membangun citra Docker dari Dockerfile dan konteks. Konteks build adalah kumpulan file yang terletak di jalur atau URL yang ditentukan. Biasanya, Anda membangun gambar dari akar proyek Python Anda dan jalur untuk perintah build adalah "." seperti yang ditunjukkan dalam contoh berikut.
docker build --rm --pull --file "Dockerfile" --tag "mywebapp:latest" .
Proses build dapat merujuk ke salah satu file dalam konteks. Misalnya, build Anda dapat menggunakan instruksi COPY untuk mereferensikan file dalam konteks. Berikut adalah contoh Dockerfile untuk proyek Python menggunakan kerangka kerja Flask :
FROM python:3.8-slim
EXPOSE 5000
# Keeps Python from generating .pyc files in the container.
ENV PYTHONDONTWRITEBYTECODE=1
# Turns off buffering for easier container logging
ENV PYTHONUNBUFFERED=1
# Install pip requirements.
COPY requirements.txt .
RUN python -m pip install -r requirements.txt
WORKDIR /app
COPY . /app
# Creates a non-root user with an explicit UID and adds permission to access the /app folder.
RUN adduser -u 5678 --disabled-password --gecos "" appuser && chown -R appuser /app
USER appuser
# Provides defaults for an executing container; can be overridden with Docker CLI.
CMD ["gunicorn", "--bind", "0.0.0.0:5000", "wsgi:app"]
Anda dapat membuat Dockerfile secara manual atau membuatnya secara otomatis dengan Visual Studio Code dan ekstensi Docker. Untuk informasi selengkapnya, lihat Membuat file Docker.
Perintah build Docker adalah bagian dari Docker CLI. Saat Anda menggunakan IDE seperti Visual Studio Code atau PyCharm, perintah UI untuk bekerja dengan citra Docker memanggil perintah _build_ untuk Anda dan mengotomatiskan penentuan opsi.
Bekerja dengan gambar dan kontainer Python Docker
Visual Studio Code dan PyCharm
Lingkungan pengembangan terintegrasi (IDEs) seperti Visual Studio Code (VISUAL Code) dan PyCharm menyederhanakan pengembangan kontainer Python dengan mengintegrasikan tugas Docker ke dalam alur kerja Anda. Dengan ekstensi atau plugin, IDEs ini menyederhanakan pembuatan gambar Docker, menjalankan kontainer, dan menyebarkan ke layanan Azure seperti App Service atau Container Instances. Berikut adalah beberapa hal yang dapat Anda lakukan dengan VS Code dan PyCharm.
Unduh dan buat gambar Docker.
- Buat gambar di lingkungan dev Anda.
- Buat gambar Docker di Azure tanpa Docker yang diinstal di lingkungan pengembangan. (Untuk PyCharm, gunakan Azure CLI untuk membuat gambar di Azure.)
Buat dan jalankan kontainer Docker dari gambar yang ada, gambar yang ditarik, atau langsung dari Dockerfile.
Jalankan aplikasi multikontainer dengan Docker Compose.
Sambungkan dan bekerja dengan registri kontainer seperti Docker Hub, GitLab, JetBrains Space, Docker V2, dan registri Docker yang dihost sendiri lainnya.
(Khusus VS Code) Tambahkan Dockerfile dan file Docker Compose yang disesuaikan untuk proyek Python Anda.
Untuk menyiapkan Visual Studio Code dan PyCharm untuk menjalankan kontainer Docker di lingkungan dev Anda, gunakan langkah-langkah berikut.
Jika Anda belum melakukannya, instal Azure Tools for VS Code.
Petunjuk | Cuplikan layar |
---|---|
Langkah 1: Gunakan SHIFT + ALT + A untuk membuka ekstensi Azure dan mengonfirmasi bahwa Anda tersambung ke Azure. Anda juga dapat memilih ikon Azure pada bilah ekstensi Visual Studio Code. Jika Anda tidak masuk, pilih Masuk ke Azure dan ikuti perintahnya. Jika Anda mengalami masalah saat mengakses langganan Azure, mungkin karena Anda terhalang oleh proksi. Untuk mengatasi masalah koneksi, lihat Koneksi Jaringan di Visual Studio Code. |
![]() ![]() |
Langkah 2: Gunakan CTRL + SHIFT + X untuk membuka Ekstensi, mencari ekstensi Docker, dan menginstal ekstensi. Anda juga dapat memilih ikon Ekstensi pada bilah ekstensi Visual Studio Code. |
![]() |
Langkah 3: Pilih ikon Docker di bilah ekstensi, perluas gambar, dan klik kanan gambar Docker yang menjalankannya sebagai kontainer. |
![]() |
Langkah 4: Pantau output eksekusi Docker di jendela Terminal . |
![]() |
Azure CLI dan Docker CLI
Anda juga dapat bekerja dengan gambar dan kontainer Python Docker menggunakan Azure CLI dan Docker CLI. Vs Code dan PyCharm memiliki terminal tempat Anda dapat menjalankan CLI ini.
Gunakan CLI saat Anda menginginkan kontrol yang lebih baik atas argumen build dan run, dan untuk otomatisasi. Misalnya, perintah berikut menunjukkan cara menggunakan azure CLI az acr build untuk menentukan nama gambar Docker.
az acr build --registry <registry-name> \
--resource-group <resource-group> \
--target pythoncontainerwebapp:latest .
Sebagai contoh lain, pertimbangkan perintah berikut yang menunjukkan cara menggunakan perintah jalankan Docker CLI. Contoh menunjukkan cara menjalankan kontainer Docker yang berkomunikasi ke instans MongoDB di lingkungan dev Anda, di luar kontainer. Nilai yang berbeda untuk menyelesaikan perintah lebih mudah diotomatiskan saat ditentukan dalam baris perintah.
docker run --rm -it \
--publish <port>:<port> --publish 27017:27017 \
--add-host mongoservice:<your-server-IP-address> \
--env CONNECTION_STRING=mongodb://mongoservice:27017 \
--env DB_NAME=<database-name> \
--env COLLECTION_NAME=<collection-name> \
containermongo:latest
Untuk informasi selengkapnya tentang skenario ini, lihat Membangun dan menguji aplikasi web Python dalam kontainer secara lokal.
Variabel lingkungan dalam kontainer
Proyek Python biasanya menggunakan variabel lingkungan untuk meneruskan data konfigurasi ke dalam kode aplikasi. Pendekatan ini memungkinkan fleksibilitas yang lebih besar di berbagai lingkungan. Misalnya, detail koneksi database dapat disimpan dalam variabel lingkungan, sehingga mudah untuk beralih antara database pengembangan, pengujian, dan produksi tanpa memodifikasi kode. Pemisahan konfigurasi dari kode ini mempromosikan penyebaran yang lebih bersih dan meningkatkan keamanan dan pemeliharaan.
Paket seperti python-dotenv sering digunakan untuk membaca pasangan kunci-nilai dari file .env dan mengaturnya sebagai variabel lingkungan. File .env berguna saat berjalan di lingkungan virtual tetapi tidak disarankan saat bekerja dengan kontainer. Jangan salin file .env ke dalam gambar Docker, terutama jika berisi informasi sensitif dan kontainer akan diumumkan ke publik. Gunakan file .dockerignore untuk mengecualikan file agar tidak disalin ke dalam gambar Docker. Untuk informasi selengkapnya, lihat bagian Lingkungan virtual dan kontainer di artikel ini.
Anda dapat meneruskan variabel lingkungan ke kontainer dengan beberapa cara:
- Didefinisikan dalam Dockerfile sebagai instruksi ENV .
- Argumen diteruskan ke dalam perintah Docker
--build-arg
. - Diteruskan sebagai
--secret
argumen dengan perintah build Docker dan backend BuildKit . - Diteruskan sebagai argumen
--env
atau--env-file
dengan menggunakan perintah jalankan Docker.
Dua opsi pertama memiliki kelemahan yang sama seperti yang disebutkan dengan file .env , yaitu bahwa Anda mengodekan informasi yang berpotensi sensitif ke dalam gambar Docker. Anda dapat memeriksa image Docker dan melihat variabel lingkungan, misalnya, dengan perintah docker image inspect.
Opsi ketiga dengan BuildKit memungkinkan Anda meneruskan informasi rahasia untuk digunakan di Dockerfile untuk membangun gambar docker dengan cara yang aman yang tidak akan tersimpan di gambar akhir.
Opsi keempat untuk meneruskan variabel lingkungan dengan perintah jalankan Docker berarti gambar Docker tidak berisi variabel. Namun, variabel masih terlihat saat memeriksa instance kontainer (misalnya, dengan docker container inspect). Opsi ini mungkin dapat diterima ketika akses ke instans kontainer dikontrol atau dalam skenario pengujian atau pengembangan.
Berikut adalah contoh meneruskan variabel lingkungan menggunakan perintah jalankan Docker CLI dan menggunakan --env
argumen .
# PORT=8000 for Django and 5000 for Flask
export PORT=<port-number>
docker run --rm -it \
--publish $PORT:$PORT \
--env CONNECTION_STRING=<connection-info> \
--env DB_NAME=<database-name> \
<dockerimagename:tag>
Dalam Visual Studio Code (ekstensi Docker) atau PyCharm (plugin Docker), alat UI menyederhanakan pengelolaan gambar dan kontainer Docker dengan menjalankan perintah CLI docker standar (seperti build docker, docker run) di latar belakang.
Terakhir, menentukan variabel lingkungan saat menyebarkan kontainer di Azure berbeda dari menggunakan variabel lingkungan di lingkungan dev Anda. Contohnya:
Untuk Aplikasi Web untuk Kontainer, Anda mengonfigurasi pengaturan aplikasi selama konfigurasi App Service. Pengaturan ini tersedia untuk kode aplikasi Anda sebagai variabel lingkungan dan diakses menggunakan pola os.environ standar. Anda dapat mengubah nilai setelah penyebaran awal saat diperlukan. Untuk informasi selengkapnya, lihat Mengakses pengaturan aplikasi sebagai variabel lingkungan.
Untuk Azure Container Apps, Anda mengonfigurasi variabel lingkungan selama konfigurasi awal aplikasi kontainer. Modifikasi lanjutan variabel lingkungan membuat revisi kontainer. Selain itu, Azure Container Apps memungkinkan Anda menentukan rahasia di tingkat aplikasi lalu mereferensikannya dalam variabel lingkungan. Untuk informasi selengkapnya, lihat Mengelola rahasia di Azure Container Apps.
Sebagai opsi lain, Anda dapat menggunakan Konektor Layanan untuk membantu Anda menyambungkan layanan komputasi Azure ke layanan dukungan lainnya. Layanan ini mengonfigurasi pengaturan jaringan dan informasi koneksi (misalnya, menghasilkan variabel lingkungan) antara layanan komputasi dan layanan dukungan target di bidang manajemen.
Menampilkan log kontainer
Lihat log instans kontainer untuk melihat output pesan diagnostik dari kode dan untuk memecahkan masalah dalam kode kontainer Anda. Berikut adalah beberapa cara untuk melihat log saat menjalankan kontainer di lingkungan dev Anda:
Menjalankan kontainer dengan Visual Studio Code atau PyCharm, seperti yang ditunjukkan di bagian Visual Studio Code dan PyCharm, Anda dapat melihat log di jendela terminal yang dibuka saat eksekusi Docker dijalankan.
Jika Anda menjalankan perintah Docker CLI dengan bendera interaktif, Anda akan melihat output sebagai hasil dari perintah tersebut.
Di Docker Desktop, Anda juga dapat melihat log untuk kontainer yang sedang berjalan.
Saat Anda menyebarkan kontainer di Azure, Anda juga memiliki akses ke log kontainer. Berikut adalah beberapa layanan Azure dan cara mengakses log kontainer di portal Microsoft Azure.
Layanan Azure | Cara mengakses log di portal Microsoft Azure |
---|---|
Aplikasi Web untuk Kontainer | Buka sumber daya Diagnosis dan selesaikan masalah untuk melihat log. Diagnostik adalah pengalaman cerdas dan interaktif untuk membantu Anda memecahkan masalah aplikasi tanpa memerlukan konfigurasi. Untuk tampilan log real time, bukaaliran Log - . Untuk kueri dan konfigurasi log yang lebih rinci, lihat sumber daya lain di bawah Pemantauan. |
Aplikasi Kontainer Azure | Buka sumber daya lingkungan Diagnosis dan selesaikan masalah untuk memecahkan masalah lingkungan. Lebih sering, Anda ingin melihat log kontainer. Di sumber daya kontainer, di bawahmanajemen Revisi - , pilih revisi dan dari sana Anda dapat melihat log sistem dan konsol. Untuk kueri dan konfigurasi log yang lebih rinci, lihat sumber daya di bawah Pemantauan. |
Azure Container Instances (Instans Kontainer Azure) | Buka sumber daya Kontainer dan pilih Log. |
Untuk layanan ini, berikut adalah perintah Azure CLI untuk mengakses log.
Layanan Azure | Perintah Azure CLI untuk mengakses log |
---|---|
Aplikasi Web untuk Kontainer | log webapp az |
Aplikasi Kontainer Azure | log az containerapps |
Azure Container Instances (Instans Kontainer Azure) | log container az |
Ada juga dukungan untuk melihat log di Visual Studio Code. Anda harus menginstal Azure Tools for VS Code . Di bawah ini adalah contoh melihat log Web Apps for Containers (App Service) di Visual Studio Code.