Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Membuat gambar kontainer untuk digunakan di Amazon ECS
Amazon ECS menggunakan gambar Docker dalam definisi tugas untuk meluncurkan kontainer. Docker adalah teknologi yang menyediakan alat bagi Anda untuk membangun, menjalankan, menguji, dan menyebarkan aplikasi terdistribusi dalam wadah.
Tujuan dari langkah-langkah yang diuraikan di sini adalah untuk memandu Anda membuat gambar Docker pertama Anda dan mendorong gambar itu ke AmazonECR, yang merupakan registri wadah, untuk digunakan dalam definisi ECS tugas Amazon Anda. Panduan ini mengasumsikan bahwa Anda memiliki pemahaman dasar tentang apa itu Docker dan cara kerjanya. Untuk informasi selengkapnya tentang Docker, lihat Apa itu Docker?
Prasyarat
Sebelum Anda mulai, pastikan prasyarat berikut terpenuhi.
-
Pastikan Anda telah menyelesaikan langkah-langkah ECR penyiapan Amazon. Untuk informasi selengkapnya, lihat Menyiapkan Amazon ECR di Panduan Pengguna Amazon Elastic Container Registry.
-
Pengguna Anda memiliki IAM izin yang diperlukan untuk mengakses dan menggunakan ECR layanan Amazon. Untuk informasi selengkapnya, lihat Kebijakan ECR terkelola Amazon.
-
Anda telah menginstal Docker. Untuk langkah-langkah instalasi Docker untuk Amazon Linux 2, lihatMenginstal Docker pada 023 AL2. Untuk semua sistem operasi lainnya, lihat dokumentasi Docker di ikhtisar Docker Desktop
. -
Anda telah AWS CLI diinstal dan dikonfigurasi. Untuk informasi selengkapnya, lihat Menginstal AWS Command Line Interface dalam Panduan Pengguna AWS Command Line Interface .
Jika Anda tidak memiliki atau memerlukan lingkungan pengembangan lokal dan Anda lebih suka menggunakan EC2 instans Amazon untuk menggunakan Docker, kami menyediakan langkah-langkah berikut untuk meluncurkan EC2 instans Amazon menggunakan Amazon Linux 2 dan menginstal Docker Engine dan Docker. CLI
Docker tersedia dalam banyak sistem operasi yang berbeda, termasuk sebagian besar distribusi Linux modern, seperti Ubuntu, dan bahkan macOS dan Windows. Untuk informasi lebih lanjut tentang cara menginstal Docker pada sistem operasi tertentu Anda, kunjungi situs webpanduan penginstalan Docker
Anda tidak memerlukan sistem pengembangan lokal untuk menggunakan Docker. Jika Anda EC2 sudah menggunakan Amazon, Anda dapat meluncurkan instans Amazon Linux 2023 dan menginstal Docker untuk memulai.
Jika Anda sudah menginstal Docker, langsung ke Membuat citra Docker.
Untuk menginstal Docker di EC2 instans Amazon menggunakan Amazon Linux 2023 AMI
-
Luncurkan instance dengan Amazon Linux 2023 AMI terbaru. Untuk informasi selengkapnya, lihat Meluncurkan instance di Panduan EC2 Pengguna Amazon.
-
Terhubung ke instans Anda. Untuk informasi selengkapnya, lihat Connect to Your Linux Instance di Panduan EC2 Pengguna Amazon.
-
Perbarui paket yang diinstal dan paket cache pada instans Anda.
sudo yum update -y
-
Instal paket Edisi Komunitas Docker terbaru.
sudo yum install docker
-
Mulai layanan Docker.
sudo service docker start
-
Tambahkan
ec2-user
ke grupdocker
sehingga Anda dapat menjalankan perintah Docker tanpa menggunakansudo
.sudo usermod -a -G docker ec2-user
-
Keluar dan masuk kembali untuk mengambil izin grup
docker
yang baru. Anda dapat melakukannya dengan menutup jendela SSH terminal Anda saat ini dan menghubungkan kembali ke instans Anda di yang baru. SSHSesi baru Anda akan memiliki izindocker
grup yang sesuai. -
Verifikasi bahwa
ec2-user
dapat menjalankan perintah Docker tanpasudo
.docker info
catatan
Dalam beberapa kasus, Anda mungkin perlu melakukan booting ulang pada instans Anda untuk memberikan izin bagi
ec2-user
untuk mengakses daemon Docker. Coba booting ulang instans Anda jika Anda melihat kesalahan berikut ini:Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Membuat citra Docker
Definisi ECS tugas Amazon menggunakan gambar Docker untuk meluncurkan container pada instance container di cluster Anda. Di bagian ini, Anda membuat gambar Docker dari aplikasi web sederhana, dan mengujinya di sistem lokal atau EC2 instans Amazon, lalu mendorong gambar ke registri ECR penampung Amazon sehingga Anda dapat menggunakannya dalam definisi ECS tugas Amazon.
Untuk membuat citra Docker dari aplikasi web sederhana
-
Buat file bernama
Dockerfile
. Dockerfile adalah manifes yang menjelaskan citra dasar yang akan digunakan untuk citra Docker Anda dan apa yang ingin Anda instal dan jalankan di atasnya. Untuk informasi selengkapnya tentang Dockerfiles, buka Referensi Dockerfile. touch Dockerfile
-
Edit
Dockerfile
yang baru saja Anda buat dan tambahkan konten berikut.FROM public.ecr.aws/amazonlinux/amazonlinux:latest # Update installed packages and install Apache RUN yum update -y && \ yum install -y httpd # Write hello world message RUN echo 'Hello World!' > /var/www/html/index.html # Configure Apache RUN echo 'mkdir -p /var/run/httpd' >> /root/run_apache.sh && \ echo 'mkdir -p /var/lock/httpd' >> /root/run_apache.sh && \ echo '/usr/sbin/httpd -D FOREGROUND' >> /root/run_apache.sh && \ chmod 755 /root/run_apache.sh EXPOSE 80 CMD /root/run_apache.sh
Dockerfile ini menggunakan gambar Amazon Linux 2 publik yang dihosting di Amazon ECR Public.
RUN
Instruksi memperbarui cache paket, menginstal beberapa paket perangkat lunak untuk server web, dan kemudian menulis “Hello World!” konten ke root dokumen server web.EXPOSE
Instruksi berarti bahwa port 80 pada wadah adalah yang mendengarkan, danCMD
instruksi memulai server web. -
Membangun citra Docker dari Dockerfile Anda.
catatan
Beberapa versi Docker mungkin memerlukan jalur lengkap ke Dockerfile Anda dalam perintah berikut, bukan jalur relatif yang ditunjukkan di bawah ini.
docker build -t hello-world .
-
Buat daftar gambar kontainer Anda.
docker images --filter reference=hello-world
Output:
REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest e9ffedc8c286 4 minutes ago 194MB
-
Jalankan citra yang baru dibuat. Opsi
-p 80:80
memetakan port 80 yang terbuka pada kontainer ke port 80 pada sistem host.docker run -t -i -p 80:80 hello-world
catatan
Output dari server web Apache ditampilkan di jendela terminal. Anda dapat mengabaikan pesan “
Could not reliably determine the fully qualified domain name
“. -
Buka peramban dan arahkan ke server yang menjalankan Docker dan meng-host kontainer Anda.
-
Jika Anda menggunakan EC2 instance, ini adalah DNS nilai Publik untuk server, yang merupakan alamat yang sama yang Anda gunakan untuk terhubung ke instanceSSH. Pastikan bahwa grup keamanan untuk instans Anda mengizinkan lalu lintas masuk pada port 80.
-
Jika Anda menjalankan Docker secara lokal, arahkan peramban Anda ke http://localhost/
. -
Jika Anda menggunakan docker-machine pada komputer Windows atau Mac, temukan alamat IP VirtualBox VM yang menghosting Docker dengan docker-machine ip perintah, menggantikan
machine-name
dengan nama mesin docker yang Anda gunakan.docker-machine ip
machine-name
Anda akan melihat halaman web dengan pernyataan “Hello World!” .
-
-
Hentikan kontainer Docker dengan mengetik Ctrl + c.
Dorong gambar Anda ke Amazon Elastic Container Registry
Amazon ECR adalah layanan registri AWS Docker terkelola. Anda dapat menggunakan Docker CLI untuk mendorong, menarik, dan mengelola gambar di ECR repositori Amazon Anda. Untuk detail ECR produk Amazon, studi kasus pelanggan unggulan, danFAQs, lihat halaman detail produk Amazon Elastic Container Registry
Untuk menandai gambar Anda dan mendorongnya ke Amazon ECR
-
Buat ECR repositori Amazon untuk menyimpan gambar Anda
hello-world
. PerhatikanrepositoryUri
pada outputnya.Gantikan
region
, dengan Anda Wilayah AWS, misalnya,us-east-1
.aws ecr create-repository --repository-name
hello-repository
--regionregion
Output:
{ "repository": { "registryId": "
aws_account_id
", "repositoryName": "hello-repository", "repositoryArn": "arn:aws:ecr:region
:aws_account_id
:repository/hello-repository", "createdAt": 1505337806.0, "repositoryUri": "aws_account_id
.dkr.ecr.region
.amazonaws.com/hello-repository" } } -
Tandai citra
hello-world
dengan nilairepositoryUri
dari langkah sebelumnya.docker tag hello-world
aws_account_id
.dkr.ecr.region
.amazonaws.com/hello-repository
-
Jalankan perintah aws ecr get-login-password. Tentukan registri yang ingin URI Anda autentikasi. Untuk informasi selengkapnya, lihat Autentikasi Registri dalam Panduan Pengguna Amazon Elastic Container Registry.
aws ecr get-login-password --region
region
| docker login --username AWS --password-stdinaws_account_id
.dkr.ecr.region
.amazonaws.com.rproxy.goskope.comOutput:
Login Succeeded
penting
Jika Anda menerima kesalahan, instal atau perbarui ke versi terbaru AWS CLI. Untuk informasi selengkapnya, lihat Menginstal AWS Command Line Interface dalam Panduan Pengguna Amazon EKS AWS Command Line Interface .
-
Dorong gambar ke Amazon ECR dengan
repositoryUri
nilai dari langkah sebelumnya.docker push
aws_account_id
.dkr.ecr.region
.amazonaws.com/hello-repository
Bersihkan
Untuk melanjutkan dengan membuat definisi ECS tugas Amazon dan meluncurkan tugas dengan gambar penampung Anda, lewati ke fileLangkah selanjutnya. Setelah selesai bereksperimen dengan ECR gambar Amazon Anda, Anda dapat menghapus repositori sehingga Anda tidak dikenakan biaya untuk penyimpanan gambar.
aws ecr delete-repository --repository-name
hello-repository
--regionregion
--force
Langkah selanjutnya
Definisi tugas Anda memerlukan peran eksekusi tugas. Untuk informasi selengkapnya, lihat IAMPeran eksekusi ECS tugas Amazon.
Setelah Anda membuat dan mendorong gambar kontainer Anda ke AmazonECR, Anda dapat menggunakan gambar itu dalam definisi tugas. Untuk informasi selengkapnya, lihat salah satu dari berikut ini: