Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Mempersiapkan image Docker Anda untuk penyebaran ke Elastic Beanstalk

Mode fokus
Mempersiapkan image Docker Anda untuk penyebaran ke Elastic Beanstalk - AWS Elastic Beanstalk

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Bagian ini menjelaskan cara menyiapkan image Docker Anda untuk penerapan ke Elastic Beanstalk dengan salah satu cabang platform Docker running atau 023. AL2 AL2 File konfigurasi yang Anda perlukan bergantung pada apakah gambar Anda lokal, jarak jauh, dan apakah Anda menggunakan Docker Compose.

catatan

Untuk contoh prosedur yang meluncurkan lingkungan Docker, lihat topiknya. QuickStart untuk Docker

Mengelola gambar Anda dengan Docker Compose di Elastic Beanstalk

Anda dapat memilih untuk menggunakan Docker Compose untuk mengelola berbagai layanan dalam satu YAML file. Untuk mempelajari lebih lanjut tentang Docker Compose, lihat Mengapa menggunakan Compose? di situs web Docker.

  • Buat adocker-compose.yml. File ini diperlukan jika Anda menggunakan Docker Compose untuk mengelola aplikasi Anda dengan Elastic Beanstalk. Jika semua penerapan Anda bersumber dari gambar di repositori publik, maka tidak ada file konfigurasi lain yang diperlukan. Jika gambar sumber penyebaran Anda berada di repositori pribadi, Anda harus melakukan beberapa konfigurasi tambahan. Untuk informasi selengkapnya, lihat Menggunakan gambar dari repositori pribadi. Untuk informasi lebih lanjut tentang file docker-compose.yml, lihat Buat referensi file di situs web Docker.

  • DockerfileItu opsional. Buat satu jika Anda membutuhkan Elastic Beanstalk untuk membangun dan menjalankan gambar kustom lokal. Untuk informasi lebih lanjut tentang Dockerfile, lihat Referensi Dockerfile di situs web Docker.

  • Anda mungkin perlu membuat .zip file. Jika Anda hanya menggunakan Dockerfile file untuk menyebarkan aplikasi Anda, Anda tidak perlu membuatnya. Jika Anda menggunakan file konfigurasi tambahan, file.zip harus menyertakan fileDockerfile, docker-compose.yml file aplikasi Anda, dan dependensi file aplikasi apa pun. The Dockerfile dan docker-compose.yml harus berada di root, atau tingkat atas, dari arsip.zip. Jika Anda menggunakan EB CLI untuk menyebarkan aplikasi Anda, itu akan membuat file.zip untuk Anda.

Untuk mempelajari lebih lanjut tentang Docker Compose dan cara menginstalnya, lihat situs Docker Gambaran umum Docker Compose dan Instal Docker Compose.

Mengelola gambar tanpa Docker Compose di Elastic Beanstalk

Jika Anda tidak menggunakan Docker Compose untuk mengelola image Docker, Anda harus mengonfigurasi Dockerrun.aws.json fileDockerfile, atau keduanya.

  • Buat Dockerfile untuk membangun Elastic Beanstalk dan jalankan gambar khusus secara lokal.

  • Buat file Dockerrun.aws.json v1 untuk menyebarkan gambar Docker dari repositori host ke Elastic Beanstalk.

  • Anda mungkin perlu membuat .zip file. Jika Anda hanya menggunakan salah satu dari salah satu fileDockerrun.aws.json, Dockerfile atau file, maka Anda tidak perlu membuat file.zip. Jika Anda menggunakan kedua file, maka Anda memerlukan file.zip. File.zip harus menyertakan file Dockerfile dan fileDockerrun.aws.json, bersama dengan file yang berisi file aplikasi Anda ditambah dependensi file aplikasi apa pun. Jika Anda menggunakan EB CLI untuk menyebarkan aplikasi Anda, itu akan membuat .zip file untuk Anda.

Dockerrun.aws.jsonfile konfigurasi v1

File Dockerrun.aws.json menjelaskan cara menggunakan gambar Docker jauh sebagai aplikasi Elastic Beanstalk. JSONFile ini khusus untuk Elastic Beanstalk. Jika aplikasi Anda berjalan pada gambar yang tersedia di repositori host, Anda dapat menentukan gambar dalam file Dockerrun.aws.json v1 dan menghapus Dockerfile.

Versi Dockerrun.aws.json

Parameter AWSEBDockerrunVersion menunjukkan versi file Dockerrun.aws.json.

  • Platform Docker AL2 dan AL2 023 menggunakan versi file berikut.

    • Dockerrun.aws.json v3— lingkungan yang menggunakan Docker Compose.

    • Dockerrun.aws.json v1— lingkungan yang tidak menggunakan Docker Compose.

  • ECSberjalan di Amazon Linux 2 dan ECSberjalan di AL2 023 menggunakan Dockerrun.aws.json v2 file. Platform pensiunan ECS-Multicontainer Docker Amazon Linux AMI (AL1) juga menggunakan versi yang sama.

Tombol dan nilai yang valid untuk file Dockerrun.aws.json v1 tersebut meliputi operasi berikut ini:

AWSEBDockerrunVersion

(Wajib) Tentukan nomor versi 1 jika Anda tidak menggunakan Docker Compose untuk mengelola gambar Anda.

Autentikasi

(Diperlukan hanya untuk repositori pribadi) Menentukan objek Amazon S3 menyimpan file .dockercfg.

Lihat Menggunakan gambar dari repositori pribadi di Elastic Beanstalk di Menggunakan gambar dari repositori pribadi nanti di bagian ini.

image

Menentukan gambar dasar Docker pada repositori Docker yang ada dari mana Anda sedang membangun sebuah kontainer Docker. Tentukan nilai nama kunci dalam format <organization>/<image name> untuk gambar di Docker Hub, atau <site>/<organization name>/<image name> untuk situs lain.

Bila Anda menentukan gambar pada file Dockerrun.aws.json, setiap contoh di lingkungan Elastic Beanstalk Anda menjalankan docker pull untuk menjalankan gambar. Opsional, termasuk kunci Update. Nilai defaultnya adalahtruedan menginstruksikan Elastic Beanstalk untuk memeriksa repositori, menarik setiap update ke gambar, dan menimpa gambar cache.

Saat menggunakan Dockerfile, tidak boleh menentukan kunci imagekunci di file Dockerrun.aws.json. Elastic Beanstalk selalu membuat dan menggunakan gambar yang dijelaskan dalamDockerfileketika salah satu hadir.

Port

(Diperlukan saat Anda menentukan kunci image) Cantumkan port untuk mengekspos pada kontainer Docker. Elastic Beanstalk ContainerPortmenggunakan nilai untuk menghubungkan wadah Docker ke proxy terbalik yang berjalan di host.

Anda dapat menentukan beberapa port kontainer, tapi Elastic Beanstalk hanya menggunakan port pertama. Menggunakan port ini untuk menghubungkan kontainer Anda ke reverse proxy host dan rute permintaan dari internet publik. Jika Anda menggunakan aDockerfile, ContainerPortnilai pertama harus cocok dengan entri pertama Dockerfile dalam EXPOSEdaftar.

Secara opsional, Anda dapat menentukan daftar port di HostPort. HostPortentri menentukan port host yang ContainerPortnilainya dipetakan. Jika Anda tidak menentukan HostPortnilai, nilai defaultnya. ContainerPort

{ "Image": { "Name": "image-name" }, "Ports": [ { "ContainerPort": 8080, "HostPort": 8000 } ] }
Volume

Memetakan volume dari EC2 instance ke container Docker Anda. Menentukan satu atau lebih array volume untuk dipetakan.

{ "Volumes": [ { "HostDirectory": "/path/inside/host", "ContainerDirectory": "/path/inside/container" } ] ...
Pencatatan log

Menentukan direktori di dalam kontainer tempat aplikasi Anda menulis log. Elastic Beanstalk mengunggah log apapun dalam direktori ini ke Amazon S3 ketika Anda meminta log tail atau bundel log. Jika Anda memutar log ke folder bernamarotateddalam direktori ini, Anda juga dapat mengkonfigurasi Elastic Beanstalk untuk mengunggah log diputar ke Amazon S3 untuk penyimpanan permanen. Untuk informasi selengkapnya, lihat Melihat log dari EC2 instans Amazon di lingkungan Elastic Beanstalk Anda.

, , perintah

Menentukan perintah untuk dijalankan dalam kontainer. Jika Anda menentukanEntrypoint, kemudianPerintahditambahkan sebagai argumen untukEntrypoint. Untuk informasi selengkapnya, lihat CMDdi dokumentasi Docker.

Entrypoint

Tentukan perintah default untuk menjalankan ketika kontainer dimulai. Untuk informasi selengkapnya, lihat ENTRYPOINTdi dokumentasi Docker.

Potongan gambar berikut adalah contoh yang menunjukkan sintaksfile Dockerrun.aws.json untuk kontainer tunggal.

{ "AWSEBDockerrunVersion": "1", "Image": { "Name": "janedoe/image", "Update": "true" }, "Ports": [ { "ContainerPort": "1234" } ], "Volumes": [ { "HostDirectory": "/var/app/mydb", "ContainerDirectory": "/etc/mysql" } ], "Logging": "/var/log/nginx", "Entrypoint": "/app/bin/myapp", "Command": "--argument" }>

Tombol dan nilai yang valid untuk file Dockerrun.aws.json v1 tersebut meliputi operasi berikut ini:

AWSEBDockerrunVersion

(Wajib) Tentukan nomor versi 1 jika Anda tidak menggunakan Docker Compose untuk mengelola gambar Anda.

Autentikasi

(Diperlukan hanya untuk repositori pribadi) Menentukan objek Amazon S3 menyimpan file .dockercfg.

Lihat Menggunakan gambar dari repositori pribadi di Elastic Beanstalk di Menggunakan gambar dari repositori pribadi nanti di bagian ini.

image

Menentukan gambar dasar Docker pada repositori Docker yang ada dari mana Anda sedang membangun sebuah kontainer Docker. Tentukan nilai nama kunci dalam format <organization>/<image name> untuk gambar di Docker Hub, atau <site>/<organization name>/<image name> untuk situs lain.

Bila Anda menentukan gambar pada file Dockerrun.aws.json, setiap contoh di lingkungan Elastic Beanstalk Anda menjalankan docker pull untuk menjalankan gambar. Opsional, termasuk kunci Update. Nilai defaultnya adalahtruedan menginstruksikan Elastic Beanstalk untuk memeriksa repositori, menarik setiap update ke gambar, dan menimpa gambar cache.

Saat menggunakan Dockerfile, tidak boleh menentukan kunci imagekunci di file Dockerrun.aws.json. Elastic Beanstalk selalu membuat dan menggunakan gambar yang dijelaskan dalamDockerfileketika salah satu hadir.

Port

(Diperlukan saat Anda menentukan kunci image) Cantumkan port untuk mengekspos pada kontainer Docker. Elastic Beanstalk ContainerPortmenggunakan nilai untuk menghubungkan wadah Docker ke proxy terbalik yang berjalan di host.

Anda dapat menentukan beberapa port kontainer, tapi Elastic Beanstalk hanya menggunakan port pertama. Menggunakan port ini untuk menghubungkan kontainer Anda ke reverse proxy host dan rute permintaan dari internet publik. Jika Anda menggunakan aDockerfile, ContainerPortnilai pertama harus cocok dengan entri pertama Dockerfile dalam EXPOSEdaftar.

Secara opsional, Anda dapat menentukan daftar port di HostPort. HostPortentri menentukan port host yang ContainerPortnilainya dipetakan. Jika Anda tidak menentukan HostPortnilai, nilai defaultnya. ContainerPort

{ "Image": { "Name": "image-name" }, "Ports": [ { "ContainerPort": 8080, "HostPort": 8000 } ] }
Volume

Memetakan volume dari EC2 instance ke container Docker Anda. Menentukan satu atau lebih array volume untuk dipetakan.

{ "Volumes": [ { "HostDirectory": "/path/inside/host", "ContainerDirectory": "/path/inside/container" } ] ...
Pencatatan log

Menentukan direktori di dalam kontainer tempat aplikasi Anda menulis log. Elastic Beanstalk mengunggah log apapun dalam direktori ini ke Amazon S3 ketika Anda meminta log tail atau bundel log. Jika Anda memutar log ke folder bernamarotateddalam direktori ini, Anda juga dapat mengkonfigurasi Elastic Beanstalk untuk mengunggah log diputar ke Amazon S3 untuk penyimpanan permanen. Untuk informasi selengkapnya, lihat Melihat log dari EC2 instans Amazon di lingkungan Elastic Beanstalk Anda.

, , perintah

Menentukan perintah untuk dijalankan dalam kontainer. Jika Anda menentukanEntrypoint, kemudianPerintahditambahkan sebagai argumen untukEntrypoint. Untuk informasi selengkapnya, lihat CMDdi dokumentasi Docker.

Entrypoint

Tentukan perintah default untuk menjalankan ketika kontainer dimulai. Untuk informasi selengkapnya, lihat ENTRYPOINTdi dokumentasi Docker.

Potongan gambar berikut adalah contoh yang menunjukkan sintaksfile Dockerrun.aws.json untuk kontainer tunggal.

{ "AWSEBDockerrunVersion": "1", "Image": { "Name": "janedoe/image", "Update": "true" }, "Ports": [ { "ContainerPort": "1234" } ], "Volumes": [ { "HostDirectory": "/var/app/mydb", "ContainerDirectory": "/etc/mysql" } ], "Logging": "/var/log/nginx", "Entrypoint": "/app/bin/myapp", "Command": "--argument" }>

Anda dapat menyediakan Elastic Beanstalk dengan hanya file Dockerrun.aws.json, atau dengan arsip .zip yang berisi baik file Dockerrun.aws.json maupun Dockerfile. Ketika Anda memberikan kedua file, file Dockerfile menjelaskan gambar Docker dan file Dockerrun.aws.json menyediakan informasi tambahan untuk deployment, seperti yang akan dijelaskan dalam bagian ini.

catatan

Dua file harus berada di root, atau tingkat atas, dari arsip .zip. Jangan membuat arsip dari direktori yang berisi berkas. Sebaliknya, navigasikan ke direktori itu dan buat arsip di sana.

Ketika Anda menyediakan kedua file, tidak menentukan gambar di file Dockerrun.aws.json. Elastic Beanstalk membuat dan menggunakan gambar yang dijelaskan dalam Dockerfile dan mengabaikan gambar yang ditentukan dalam file Dockerrun.aws.json.

Membangun gambar kustom dengan Dockerfile

Anda harus membuat Dockerfile Jika Anda belum memiliki image yang ada di repositori.

potongan berikut ini adalah contoh file Dockerfile. Jika Anda mengikuti petunjuk di QuickStart untuk Docker, Anda dapat mengunggah Dockerfileseperti tertulis. Elastic Beanstalk menjalankan permainan 2048 ketika Anda menggunakan ini Dockerfile.

Untuk informasi lebih lanjut tentang petunjuk yang dapat Anda sertakan dalam Dockerfile, lihatReferensi filedi situs web Docker.

FROM ubuntu:12.04 RUN apt-get update RUN apt-get install -y nginx zip curl RUN echo "daemon off;" >> /etc/nginx/nginx.conf RUN curl -o /usr/share/nginx/www/master.zip -L https://codeload.github.com/gabrielecirulli/2048/zip/master RUN cd /usr/share/nginx/www/ && unzip master.zip && mv 2048-master/* . && rm -rf 2048-master master.zip EXPOSE 80 CMD ["/usr/sbin/nginx", "-c", "/etc/nginx/nginx.conf"]
catatan

Anda dapat menjalankan build multi-tahap dari satu Dockerfile untuk menghasilkan gambar berukuran lebih kecil dengan pengurangan kompleksitas yang signifikan. Untuk informasi selengkapnya, lihat Menggunakan build multi-tahap di situs web dokumentasi Docker.

PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.