Memindahkan gambar melalui siklus hidupnya di Amazon ECR - Amazon ECR

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

Memindahkan gambar melalui siklus hidupnya di Amazon ECR

Jika Anda menggunakan Amazon ECR untuk pertama kalinya, gunakan langkah-langkah berikut dengan Docker CLI dan AWS CLI untuk membuat gambar sampel, mengautentikasi ke registri default, dan membuat repositori pribadi. Kemudian dorong gambar ke dan tarik gambar dari repositori pribadi. Setelah selesai dengan gambar sampel, hapus gambar sampel dan repositori.

Untuk menggunakan AWS Management Console alih-alih AWS CLI, lihatMembuat repositori pribadi Amazon ECR untuk menyimpan gambar.

Untuk informasi selengkapnya tentang alat lain yang tersedia untuk mengelola AWS sumber daya Anda, termasuk yang berbeda AWS SDKs, IDE toolkit, dan alat baris PowerShell perintah Windows, lihat http://aws.amazon.com/tools/.

Prasyarat

Jika Anda tidak memiliki yang terbaru AWS CLI dan Docker diinstal dan siap digunakan, gunakan langkah-langkah berikut untuk menginstal kedua alat ini.

Instal AWS CLI

Untuk menggunakan AWS CLI dengan AmazonECR, instal AWS CLI versi terbaru. Untuk selengkapnya, lihat Menginstal AWS Command Line Interface di Panduan AWS Command Line Interface Pengguna.

Instal Docker

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 Langkah 1: Buat citra Docker.

Untuk menginstal Docker di EC2 instans Amazon menggunakan Amazon Linux 2023 AMI
  1. Luncurkan instance dengan Amazon Linux 2023 AMI terbaru. Untuk informasi selengkapnya, lihat Meluncurkan instance di Panduan EC2 Pengguna Amazon.

  2. Terhubung ke instans Anda. Untuk informasi selengkapnya, lihat Connect to Your Linux Instance di Panduan EC2 Pengguna Amazon.

  3. Perbarui paket yang diinstal dan paket cache pada instans Anda.

    sudo yum update -y
  4. Instal paket Edisi Komunitas Docker terbaru.

    sudo yum install docker
  5. Mulai layanan Docker.

    sudo service docker start
  6. Tambahkan ec2-user ke grup docker sehingga Anda dapat menjalankan perintah Docker tanpa menggunakan sudo.

    sudo usermod -a -G docker ec2-user
  7. 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 izin docker grup yang sesuai.

  8. Verifikasi bahwa ec2-user dapat menjalankan perintah Docker tanpa sudo.

    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 me-reboot instans Anda jika Anda melihat kesalahan berikut:

    Cannot connect to the Docker daemon. Is the docker daemon running on this host?

Langkah 1: Buat citra Docker

Pada langkah ini, Anda membuat gambar Docker dari aplikasi web sederhana, dan mengujinya di sistem lokal atau EC2 instans Amazon Anda.

Untuk membuat citra Docker dari aplikasi web sederhana
  1. 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
  2. Edit Dockerfile yang baru saja Anda buat dan tambahkan konten berikut.

    FROM public.ecr.aws/amazonlinux/amazonlinux:latest # Install dependencies RUN yum update -y && \ yum install -y httpd # Install apache and 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. RUNInstruksi memperbarui cache paket, menginstal beberapa paket perangkat lunak untuk server web, dan kemudian menulis “Hello World!” konten ke root dokumen server web. Instruksi EXPOSE mengekspos port 80 pada kontainer, dan instruksi CMD memulai server web.

  3. 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 .
  4. 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
  5. Jalankan citra yang baru dibuat. Opsi -p 80:80 memetakan port 80 yang terbuka pada kontainer ke port 80 pada sistem host. Untuk informasi lebih lanjut tentang docker run, buka Referensi menjalankan Docker.

    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“.

  6. 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 instance denganSSH. 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!” .

  7. Hentikan kontainer Docker dengan mengetik Ctrl + c.

Langkah 2: Buat repositori

Sekarang Anda memiliki gambar untuk didorong ke AmazonECR, Anda harus membuat repositori untuk menahannya. Dalam contoh ini, Anda membuat repositori yang disebut hello-repository yang kemudian Anda mendorong citra hello-world:latest. Untuk membuat repositori, jalankan perintah berikut:

aws ecr create-repository \ --repository-name hello-repository \ --region region

Langkah 3: Otentikasi ke registri default Anda

Setelah Anda menginstal dan mengkonfigurasi AWS CLI, otentikasi Docker CLI ke registri default Anda. Dengan begitu, docker perintah dapat mendorong dan menarik gambar dengan AmazonECR. AWS CLI Ini menyediakan get-login-password perintah untuk menyederhanakan proses otentikasi.

Untuk mengautentikasi Docker ke ECR registri Amazon dengan get-login-password, jalankan perintah. aws ecr get-login-password Saat meneruskan token otentikasi ke docker login perintah, gunakan nilai AWS untuk nama pengguna dan tentukan ECR registri Amazon yang ingin URI Anda autentikasi. Jika melakukan autentikasi untuk beberapa registrasi, Anda harus mengulangi perintah tersebut untuk setiap registrasi.

penting

Jika Anda menerima pesan kesalahan, instal atau upgrade ke versi terbaru AWS CLI. Untuk informasi selengkapnya, lihat Menginstal AWS Command Line Interface dalam Panduan Pengguna Amazon EKS AWS Command Line Interface .

  • get-login-password (AWS CLI)

    aws ecr get-login-password --region region | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com
  • Dapatkan- ECRLoginCommand (AWS Tools for Windows PowerShell)

    (Get-ECRLoginCommand).Password | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com

Langkah 4: Dorong gambar ke Amazon ECR

Sekarang Anda dapat mendorong gambar Anda ke ECR repositori Amazon yang Anda buat di bagian sebelumnya. Gunakan docker CLI untuk mendorong gambar setelah prasyarat berikut terpenuhi:

  • Versi minimum diinstal: 1.7. docker

  • Token ECR otorisasi Amazon dikonfigurasi dengandocker login.

  • ECRRepositori Amazon ada dan pengguna memiliki akses untuk mendorong ke repositori.

Setelah persyaratan tersebut terpenuhi, Anda dapat mendorong citra Anda ke repositori yang baru dibuat di registrasi default untuk akun Anda.

Untuk menandai dan mendorong gambar ke Amazon ECR
  1. Cantumkan citra yang telah Anda simpan secara lokal untuk mengidentifikasi citra yang akan di-tanda dan didorong.

    docker images

    Output:

    REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
    hello-world         latest              e9ffedc8c286        4 minutes ago       241MB
  2. Tandai citra untuk mendorongnya ke repositori Anda.

    docker tag hello-world:latest aws_account_id.dkr.ecr.region.amazonaws.com/hello-repository
  3. Mendorong citra

    docker push aws_account_id.dkr.ecr.region.amazonaws.com/hello-repository:latest

    Output:

    The push refers to a repository [aws_account_id.dkr.ecr.region.amazonaws.com/hello-repository] (len: 1)
    e9ae3c220b23: Pushed
    a6785352b25c: Pushed
    0998bf8fb9e9: Pushed
    0a85502c06c9: Pushed
    latest: digest: sha256:215d7e4121b30157d8839e81c4e0912606fca105775bb0636EXAMPLE size: 6774

Langkah 5: Tarik gambar dari Amazon ECR

Setelah gambar Anda didorong ke ECR repositori Amazon Anda, Anda dapat menariknya dari lokasi lain. Gunakan docker CLI untuk menarik gambar setelah prasyarat berikut terpenuhi:

  • Versi minimum diinstal: 1.7. docker

  • Token ECR otorisasi Amazon dikonfigurasi dengandocker login.

  • ECRRepositori Amazon ada dan pengguna memiliki akses untuk menarik dari repositori.

Setelah prasyarat tersebut terpenuhi, Anda bisa menarik citra Anda. Untuk menarik gambar contoh Anda dari AmazonECR, jalankan perintah berikut:

docker pull aws_account_id.dkr.ecr.region.amazonaws.com/hello-repository:latest

Output:

latest: Pulling from hello-repository
0a85502c06c9: Pull complete
0998bf8fb9e9: Pull complete
a6785352b25c: Pull complete
e9ae3c220b23: Pull complete
Digest: sha256:215d7e4121b30157d8839e81c4e0912606fca105775bb0636EXAMPLE
Status: Downloaded newer image for aws_account_id.dkr.region.amazonaws.com/hello-repository:latest

Langkah 6: Menghapus citra

Jika Anda tidak lagi membutuhkan gambar di salah satu repositori Anda, Anda dapat menghapus gambar tersebut. Untuk menghapus gambar, tentukan repositori yang ada di dalamnya dan imageDigest nilai imageTag atau untuk gambar tersebut. Contoh berikut menghapus gambar di hello-repository repositori dengan tag gambar. latest Untuk menghapus gambar contoh Anda dari repositori, jalankan perintah berikut:

aws ecr batch-delete-image \ --repository-name hello-repository \ --image-ids imageTag=latest \ --region region

Langkah 7: Menghapus repositori

Jika Anda tidak lagi membutuhkan seluruh repositori gambar, Anda dapat menghapus repositori. Contoh berikut menggunakan --force bendera untuk menghapus repositori yang berisi gambar. Untuk menghapus repositori yang berisi gambar (dan semua gambar di dalamnya), jalankan perintah berikut:

aws ecr delete-repository \ --repository-name hello-repository \ --force \ --region region