Bekerja dengan layanan Amazon Elastic Container Registry dalam VS Code - AWS Toolkit for VS Code

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

Bekerja dengan layanan Amazon Elastic Container Registry dalam VS Code

Anda dapat mengakses layanan Amazon Elastic Container Registry (Amazon ECR) langsung dariAWSExplorer dalam VS Code dan gunakan untuk mendorong gambar program ke repositori Amazon ECR. Untuk memulai, Anda perlu melakukan langkah-langkah ini:

  1. Buat Dockerfile yang berisi informasi yang diperlukan untuk membangun gambar.

  2. Buat gambar dari Dockerfile tersebut dan beri tag pada gambar untuk diproses.

  3. Buat repositori di dalam instans Amazon ECR Anda.

  4. Dorong citra yang ditandai ke repositori Anda.

Prasyarat

Sebelum Anda dapat menggunakan fitur layanan Amazon ECR dari Toolkit for VS Code, Anda harus memenuhi fitur iniprasyarat.

1. Membuat Dockerfile

Docker menggunakan file bernama Dockerfile untuk menentukan gambar yang dapat didorong dan disimpan pada repositori jarak jauh. Sebelum Anda dapat mengunggah gambar ke repositori ECR, Anda harus membuat Dockerfile dan kemudian membuat gambar dari Dockerfile tersebut.

Membuat Dockerfile
  1. Gunakan Toolkit for VS Code explorer untuk menavigasi ke direktori tempat Anda ingin menyimpan Dockerfile Anda.

  2. Membuat file baru yang dipanggilDockerfile.

    catatan

    VS Code dapat meminta Anda untuk memilih jenis file atau ekstensi file. Jika ini terjadi, pilihteks biasa. Vs Code memiliki ekstensi “dockerfile”. Namun, kami tidak menganjurkan Anda menggunakannya. Ini karena ekstensi dapat menyebabkan konflik dengan versi Docker tertentu atau aplikasi terkait lainnya.

Edit Dockerfile Anda menggunakan VS Code

Jika Dockerfile Anda memiliki ekstensi file, buka menu konteks (klik kanan) untuk file dan hapus ekstensi file.

Setelah ekstensi file dihapus dari Dockerfile Anda:

  1. Buka Dockerfile kosong langsung di VS Code.

  2. Salin isi contoh berikut ke Dockerfile Anda:

    contoh Templat Gambar Dockerfile
    FROM ubuntu:18.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 citra Ubuntu 18.04. YangMENJALANKANpetunjuk memperbarui cache paket. Instal paket perangkat lunak untuk server web, dan kemudian menulis “Hello World!” konten ke root dokumen server web. YangMEMBONGKARInstruksi mengekspos port 80 pada kontainer, danCMDinstruksi dimulai server web.

  3. Simpan Dockerfile Anda.

    penting

    Pastikan bahwa Dockerfile Anda tidak memiliki ekstensi yang melekat pada nama. Dockerfile dengan ekstensi dapat menyebabkan konflik dengan versi Docker tertentu atau aplikasi terkait lainnya.

2. Membangun citra Anda dari Dockerfile Anda

Dockerfile yang Anda buat berisi informasi yang diperlukan untuk membangun gambar untuk sebuah program. Sebelum Anda dapat mendorong gambar tersebut ke instans Amazon ECR, Anda harus membuat gambar terlebih dahulu.

Membangun citra dari Dockerfile Anda
  1. Gunakan Docker CLI atau CLI yang terintegrasi dengan instance Docker Anda untuk menavigasi ke direktori yang berisi Dockerfile Anda.

  2. JalankanMembangun Dockerperintah untuk membangun gambar yang didefinisikan dalam Dockerfile Anda.

    docker build -t hello-world .
  3. JalankanGambar Dockerperintah untuk memverifikasi bahwa citra telah dibuat dengan benar.

    docker images --filter reference=hello-world
    contoh Contoh output:
    REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest e9ffedc8c286 4 minutes ago 241MB
  4. catatan

    Langkah ini tidak diperlukan untuk membuat atau mendorong gambar Anda, tetapi Anda dapat melihat bagaimana gambar program bekerja ketika dijalankan.

    Untuk menjalankan citra yang baru dibuat menggunakanJalankan Dockerperintah.

    docker run -t -i -p 80:80 hello-world

    Yang-Ppilihan yang ditentukan dalam contoh sebelumnya memetakan terkenapelabuhan 80pada wadah untukpelabuhan 80dari sistem host. Jika Anda menjalankan Docker secara lokal, navigasikan kehttp://localhost:80menggunakan peramban web Anda. Jika program berjalan dengan benar, “Hello World!” Pernyataan ditampilkan.

    Untuk informasi lebih lanjut tentangJalankan Dockerperintah, lihatReferensi Dockerdi situs web Docker.

3. Membuat repositori baru

Untuk mengunggah gambar Anda ke instans Amazon ECR Anda, buat repositori baru tempat ia dapat disimpan.

Membuat repositori Amazon ECR baru
  1. Dari VS CodeBilah Aktivitas, chooseAWSIkon Toolkit.

  2. Perluas AWSPenjelajahMenu.

  3. Temukan defaultAWSWilayah yang terkait denganAWSakun. Kemudian, pilih untuk melihat daftar layanan yang melalui Toolkit for VS Code.

  4. PilihECR +pilihan untuk memulaiMembuat repositori baruproses.

  5. Ikuti petunjuk untuk menyelesaikan proses.

  6. Setelah selesai, Anda dapat mengakses repositori baru Anda dariECRbagian dariAWSMenu Explorer.

4. Dorong, tarik, dan hapus gambar

Setelah membuat gambar dari Dockerfile dan membuat repositori, Anda dapat mendorong gambar Anda ke repositori Amazon ECR. Selain itu, menggunakanAWSExplorer dengan Docker danAWSCLI, Anda dapat melakukan hal berikut:

  • Menarik citra dari repositori Anda.

  • Hapus gambar yang disimpan di repositori Anda.

  • Hapus repositori Anda.

Mengautentikasi Docker dengan registri default

Otentikasi diperlukan untuk bertukar data antara instans Amazon ECR dan Docker. Untuk mengautentikasi Docker dengan registri Anda:

  1. Buka sistem operasi baris perintah yang terhubung ke instance AndaAWSCLI.

  2. Gunakanget-login-passwordmetode untuk mengotentikasi ke registri ECR pribadi Anda.

    aws ecr get-login-password --region region | docker login --username AWS --password-stdin AWS_account_id.dkr.ecr.region.amazonaws.com
    penting

    Di perintah sebelumnya, Anda harus memperbarui keduanyaregiondanAWS_account_iduntuk informasi yang spesifik untuk AndaAWSakun.

Tandai dan mendorongnya citra ke repositori Anda

Setelah Anda mengautentikasi Docker dengan instanceAWS, mendorongnya citra ke repositori Anda.

  1. GunakanGambar Dockerperintah untuk melihat gambar yang Anda simpan secara lokal dan mengidentifikasi salah satu yang ingin Anda tag.

    docker images
    contoh Contoh output:
    REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest e9ffedc8c286 4 minutes ago 241MB
  2. Tag gambar Anda denganTag Dockerperintah.

    docker tag hello-world:latest AWS_account_id.dkr.ecr.region.amazonaws.com/hello-world:latest
  3. Dorong gambar yang ditandai ke repositori Anda denganTag Dockerperintah.

    docker push AWS_account_id.dkr.ecr.region.amazonaws.com/hello-world:latest
    contoh Contoh output:
    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 Anda berhasil diunggah ke repositori Anda, itu terlihat diAWSMenu Explorer.

Menarik citra dari Amazon ECR
  • Anda dapat menarik gambar ke instance lokal AndaTag Dockerperintah.

    docker pull AWS_account_id.dkr.ecr.region.amazonaws.com/hello-world:latest
    contoh Contoh output:
    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
Menghapus gambar dari repositori Amazon ECR Anda

Ada dua metode untuk menghapus citra dari VS Code. Metode pertama adalah menggunakanAWSPenjelajah.

  1. DariAWSExplorer, memperluasECRdaftar makanan

  2. Perluas repositori yang ingin Anda hapus citra

  3. Pilih tag citra yang terkait dengan citra yang ingin Anda hapus, dengan membuka menu konteks (klik kanan)

  4. PilihHapus Tag...pilihan untuk menghapus semua gambar yang tersimpan terkait dengan tag tersebut

Menghapus citra menggunakanAWSCLI
  • Anda juga dapat menghapus citra dari repositori Anda denganAWSECR batch-delete-imageperintah.

    AWS ecr batch-delete-image \ --repository-name hello-world \ --image-ids imageTag=latest
    contoh Contoh output:
    { "failures": [], "imageIds": [ { "imageTag": "latest", "imageDigest": "sha256:215d7e4121b30157d8839e81c4e0912606fca105775bb0636b95aed25f52c89b" } ] }
Menghapus repositori dari instans Amazon ECR Anda

Ada dua metode untuk menghapus repositori dari VS Code. Metode pertama adalah menggunakanAWSPenjelajah.

  1. DariAWSExplorer, memperluasECRdaftar makanan

  2. Pilih repositori yang ingin Anda hapus dengan membuka menu konteks (klik kanan)

  3. PilihHapus Repositori...pilihan untuk repositori yang dipilih

Menghapus repositori Amazon ECR dariAWSCLI
  • Anda dapat menghapus repositori denganAWSECR delete-repositoryperintah.

    catatan

    Secara default, Anda tidak dapat menghapus repositori yang berisi citra. Namun,--forcebendera memungkinkan ini.

    AWS ecr delete-repository \ --repository-name hello-world \ --force
    contoh Contoh output:
    { "failures": [], "imageIds": [ { "imageTag": "latest", "imageDigest": "sha256:215d7e4121b30157d8839e81c4e0912606fca105775bb0636b95aed25f52c89b" } ] }