AWS Cloud9 tidak lagi tersedia untuk pelanggan baru. Pelanggan yang sudah ada AWS Cloud9 dapat terus menggunakan layanan seperti biasa. Pelajari selengkapnya
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Bekerja dengan ECR layanan Amazon di AWS Cloud9
Anda dapat mengakses layanan Amazon Elastic Container Registry (AmazonECR) langsung dari AWS Explorer di AWS Cloud9 IDE. Anda dapat menggunakan Amazon ECR untuk mendorong gambar program ke ECR repositori Amazon. Untuk memulai, ikuti langkah-langkah ini:
-
Buat Dockerfile yang berisi informasi yang diperlukan untuk membangun gambar.
-
Buat gambar dari Dockerfile itu dan beri tag gambar untuk diproses.
-
Buat repositori yang ada di dalam instans Amazon ECR Anda.
-
Dorong gambar yang ditandai ke repositori Anda.
Bagian-bagian
Prasyarat
Sebelum Anda dapat menggunakan ECR fitur Amazon dari AWS Toolkit untuk AWS Cloud9, pastikan Anda memenuhi prasyarat ini terlebih dahulu. Prasyarat ini sudah diinstal sebelumnya di EC2 lingkungan for AWS Cloud9 IDE Amazon dan diperlukan untuk mengakses AWS Cloud9 Amazon. ECR
1. Membuat Dockerfile
Docker menggunakan file yang disebut Dockerfile untuk menentukan gambar yang dapat didorong dan disimpan di repositori jarak jauh. Sebelum Anda dapat mengunggah gambar ke ECR repositori, buat Dockerfile dan kemudian buat gambar dari Dockerfile itu.
Membuat Dockerfile
-
Untuk menavigasi ke direktori tempat Anda ingin menyimpan Dockerfile Anda, pilih opsi Toggle Tree di bilah navigasi kiri di dalam Anda. AWS Cloud9 IDE
-
Buat file baru bernama Dockerfile.
catatan
AWS Cloud9 IDEmungkin meminta Anda untuk memilih jenis file atau ekstensi file. Jika ini terjadi, pilih plaintext. AWS Cloud9 IDEmemiliki ekstensi “dockerfile”. Namun, kami tidak menyarankan Anda menggunakannya. Ini karena ekstensi dapat menyebabkan konflik dengan versi tertentu dari Docker atau aplikasi terkait lainnya.
Mengedit Dockerfile Anda menggunakan AWS Cloud9 IDE
Jika Dockerfile Anda memiliki ekstensi file, buka menu konteks (klik kanan) untuk file tersebut dan hapus ekstensi file. Sebuah Dockerfile dengan ekstensi dapat menyebabkan konflik dengan versi tertentu dari Docker atau aplikasi terkait lainnya.
Setelah ekstensi file dihapus dari Dockerfile Anda:
-
Buka Dockerfile kosong langsung di. AWS Cloud9 IDE
-
Salin isi contoh berikut ke Dockerfile Anda.
contoh Templat gambar Dockerfile
FROM ubuntu:22.04 # Install dependencies RUN apt-get update && \ apt-get -y install apache2 # Install apache and write hello world message RUN echo 'Hello World!' > /var/www/html/index.html # Configure apache RUN echo '. /etc/apache2/envvars' > /root/run_apache.sh && \ echo 'mkdir -p /var/run/apache2' >> /root/run_apache.sh && \ echo 'mkdir -p /var/lock/apache2' >> /root/run_apache.sh && \ echo '/usr/sbin/apache2 -D FOREGROUND' >> /root/run_apache.sh && \ chmod 755 /root/run_apache.sh EXPOSE 80 CMD /root/run_apache.sh
Ini adalah Dockerfile yang menggunakan gambar Ubuntu 22.04. RUNInstruksi memperbarui cache paket. Instal paket perangkat lunak untuk server web, lalu tulis “Hello World!” konten ke root dokumen server web. EXPOSEInstruksi mengekspos port 80 pada wadah, dan CMDinstruksi memulai server web.
-
Simpan Dockerfile Anda.
2. Membangun gambar Anda dari Dockerfile Anda
Dockerfile yang Anda buat berisi informasi yang diperlukan untuk membangun gambar untuk suatu program. Sebelum Anda dapat mendorong gambar itu ke ECR instans Amazon Anda, buat dulu gambarnya.
Membangun gambar dari Dockerfile Anda
-
Untuk menavigasi ke direktori yang berisi Dockerfile Anda, gunakan Docker CLI atau CLI yang terintegrasi dengan instance Docker Anda.
-
Untuk membuat gambar yang ditentukan di Dockerfile Anda, jalankan perintah build Docker dari direktori yang sama dengan Dockerfile.
docker build -t hello-world .
-
Untuk memverifikasi bahwa gambar telah dibuat dengan benar, jalankan perintah gambar Docker.
docker images --filter reference=hello-world
Outputnya adalah sebagai berikut.
REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest e9ffedc8c286 4 minutes ago 241MB
-
Untuk menjalankan gambar yang baru dibangun berdasarkan Ubuntu 22.04, gunakan perintah echo.
catatan
Langkah ini tidak diperlukan untuk membuat atau mendorong gambar Anda. Namun, Anda dapat melihat bagaimana gambar program bekerja saat dijalankan.
FROM ubuntu:22.04 CMD ["echo", "Hello from Docker in Cloud9"]
Kemudian, jalankan dan bangun dockerfile. Anda harus menjalankan perintah ini dari direktori yang sama dengan dockerfile.
docker build -t hello-world . docker run --rm hello-world
Outputnya adalah sebagai berikut.
Hello from Docker in Cloud9
Untuk informasi selengkapnya tentang perintah Docker run, lihat referensi Docker run
di situs web Docker.
3. Membuat repositori baru
Untuk mengunggah gambar Anda ke ECR instans Amazon Anda, buat repositori baru tempat gambar tersebut dapat disimpan.
Membuat ECR repositori Amazon baru
-
Dari bilah AWS Cloud9 IDE navigasi, pilih ikon AWS Toolkit.
-
Perluas menu AWS Explorer.
-
Temukan default Wilayah AWS yang terkait dengan Anda Akun AWS. Kemudian, pilih untuk melihat daftar layanan yang melalui AWS Cloud9 IDE.
-
Buka menu konteks (klik kanan) untuk ECRopsi memulai proses Create new repository. Kemudian, pilih Create Repository.
-
Untuk menyelesaikan proses, ikuti prompt.
-
Setelah proses selesai, Anda dapat mengakses repositori baru Anda dari ECRbagian menu AWS Explorer.
4. Mendorong, menarik, dan menghapus gambar
Setelah Anda membuat gambar dari Dockerfile dan membuat repositori, Anda dapat mendorong gambar Anda ke repositori Amazon Anda. ECR Selain itu, menggunakan AWS Explorer dengan Docker dan AWS CLI, Anda dapat melakukan hal berikut:
-
Tarik gambar dari repositori Anda.
-
Hapus gambar yang disimpan di repositori Anda.
-
Hapus repositori Anda.
Mengautentikasi Docker dengan registri default Anda
Otentikasi diperlukan untuk bertukar data antara instans Amazon ECR dan Docker. Untuk mengautentikasi Docker dengan registri Anda:
-
Buka terminal di dalam Anda AWS Cloud9 IDE.
-
Gunakan get-login-passwordmetode ini untuk mengautentikasi ke ECR registri pribadi Anda dan masukkan wilayah dan Akun AWS ID Anda.
aws ecr get-login-password \ --region <
region
> \ | docker login \ --username AWS \ --password-stdin <aws_account_id
>.dkr.ecr.<region>.amazonaws.com.rproxy.goskope.compenting
Dalam perintah sebelumnya, ganti
region
danAWS_account_id
dengan informasi yang spesifik untuk Anda. Akun AWSregion
Nilai yang valid adalah us-east-1.
Menandai dan mendorong gambar ke repositori Anda
Setelah Anda mengautentikasi Docker dengan instance Anda AWS, dorong gambar ke repositori Anda.
-
Gunakan perintah docker images untuk melihat gambar yang Anda simpan secara lokal dan mengidentifikasi gambar yang ingin Anda tag.
docker images
Outputnya adalah sebagai berikut.
REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest e9ffedc8c286 4 minutes ago 241MB
-
Tandai gambar Anda dengan perintah tag Docker.
docker tag hello-world:latest
AWS_account_id
.dkr.ecr.region
.amazonaws.com/hello-world:latest -
Dorong gambar yang ditandai ke repositori Anda dengan perintah push Docker.
penting
Pastikan bahwa nama repositori lokal Anda sama dengan repositori AWS Amazon EC2 Anda. Dalam contoh ini, kedua repositori harus dipanggil.
hello-world
Untuk informasi selengkapnya tentang mendorong gambar dengan docker, lihat Mendorong gambar Docker.docker push
AWS_account_id
.dkr.ecr.region
.amazonaws.com/hello-world:latestOutputnya adalah sebagai berikut.
The push refers to a repository [
AWS_account_id
.dkr.ecr.region
.amazonaws.com/hello-world] (len: 1) e9ae3c220b23: Pushed a6785352b25c: Pushed 0998bf8fb9e9: Pushed 0a85502c06c9: Pushed latest: digest: sha256:215d7e4121b30157d8839e81c4e0912606fca105775bb0636b95aed25f52c89b size: 6774
Setelah gambar yang ditandai berhasil diunggah ke repositori, segarkan AWS Toolkit dengan memilih Refresh Explorer dari tab Explorer. AWS Ini kemudian terlihat di menu AWS Explorer di AWS Cloud9 IDE.
Menarik gambar dari Amazon ECR
-
Anda dapat menarik gambar ke instance lokal Anda dari perintah tag Docker.
docker pull
AWS_account_id
.dkr.ecr.region
.amazonaws.com/hello-world:latestOutputnya adalah sebagai berikut.
azonaws.com/hello-world:latest latest: Pulling from hello-world Digest: sha256:e02c521fd65eae4ef1acb746883df48de85d55fc85a4172a09a124b11b339f5e Status: Image is up to date for 922327013870.dkr.ecr.us-west-2.amazonaws.com/hello-world.latest
Menghapus gambar dari repositori Amazon ECR Anda
Ada dua metode untuk menghapus gambar dari AWS Cloud9 IDE. Metode pertama adalah menggunakan AWS Explorer.
-
Dari AWS Explorer, perluas ECRmenu.
-
Perluas repositori yang ingin Anda hapus gambarnya.
-
Buka menu konteks (klik kanan) untuk tag gambar yang terkait dengan gambar yang ingin Anda hapus.
-
Untuk menghapus semua gambar yang disimpan yang terkait dengan tag itu, pilih Hapus Tag... .
Menghapus gambar menggunakan AWS CLI
-
Anda juga dapat menghapus gambar dari repositori Anda dengan perintah AWS batch-delete-imageecr.
aws ecr batch-delete-image \ --repository-name
hello-world
\ --image-ids imageTag=latestOutputnya adalah sebagai berikut.
{ "failures": [], "imageIds": [ { "imageTag": "latest", "imageDigest": "sha256:215d7e4121b30157d8839e81c4e0912606fca105775bb0636b95aed25f52c89b" } ] }
Menghapus repositori dari instans Amazon Anda ECR
Ada dua metode untuk menghapus repositori dari. AWS Cloud9 IDE Metode pertama adalah menggunakan AWS Explorer:
-
Dari AWS Explorer, perluas ECRmenu.
-
Buka menu konteks (klik kanan) untuk repositori yang ingin Anda hapus.
-
Pilih Hapus Repositori... .
Menghapus ECR repositori Amazon dari AWS CLI
-
Anda dapat menghapus repositori dengan perintah AWS ecr delete-repository.
catatan
Anda biasanya tidak dapat menghapus repositori tanpa terlebih dahulu menghapus gambar yang terkandung di dalamnya. Namun, jika Anda menambahkan flag --force, Anda dapat menghapus repositori dan semua gambarnya dalam satu langkah.
aws ecr delete-repository \ --repository-name
hello-world
\ --forceOutputnya adalah sebagai berikut.
--repository-name hello-world --force { "repository": { "repositoryUri": "922327013870.dkr.ecr.us-west-2.amazonaws.com/hello-world", "registryId": "922327013870", "imageTagMutability": "MUTABLE", "repositoryArn": "arn:aws:ecr:us-west-2:922327013870:repository/hello-world", "repositoryName": "hello-world", "createdAt": 1664469874.0 } }