GNU/Linux >> Belajar Linux >  >> Panels >> Docker

Cara Menggunakan Dockerfile untuk Membangun Gambar Docker

Dockerfile adalah file teks instruksi yang digunakan untuk mengotomatisasi instalasi dan konfigurasi image aDocker. Dockerfiles memudahkan untuk menyebarkan beberapa wadah Docker tanpa harus mempertahankan gambar yang sama di beberapa mesin virtual. Instruksi dieksekusi dalam urutan yang muncul di Dockerfile, yang membuat penggunaan dan pembaruannya menjadi jelas dan intuitif. Artikel ini membahas dasar-dasar, dengan contoh, cara kerja Dockerfile.

Sebelum Anda Mulai

  1. Biasakan diri Anda dengan panduan Memulai kami, buat dan perbarui Linode, dan instal Docker. Atau, Anda dapat dengan cepat menerapkan Linode yang telah diperbarui dan mendukung Docker dengan Aplikasi Docker Marketplace.

  2. Pastikan Linode Anda aman dengan mengikuti panduan kami tentang Menyiapkan dan Mengamankan Instans Komputasi.

  3. Panduan ini mengasumsikan Anda nyaman menggunakan antarmuka baris perintah (CLI) Docker. Untuk mempelajari lebih lanjut tentang CLI Docker, lihat dokumentasinya.

Bagaimana Cara Kerja Dockerfile?

Dockerfile adalah skrip yang menjalankan perintah dan tindakan berbeda untuk membangun image Docker, yang kemudian dapat digunakan untuk men-deploy container Docker. Perintah dan informasi dalam Dockerfile dapat dikonfigurasi untuk menggunakan versi dan dependensi perangkat lunak tertentu untuk penerapan yang stabil. Anda juga dapat menggunakan registri aDocker untuk menyimpan dan mengakses image Docker publik (atau pribadi).

Setelah Dockerfile ditulis, Anda dapat menggunakan docker build perintah untuk menghasilkan gambar Docker berdasarkan instruksi Dockerfile. Kemudian, Anda dapat menerapkan wadah berdasarkan gambar dengan perintah seperti docker run atau docker create .

Berikut adalah petunjuk umum yang dapat Anda gunakan di Dockerfiles Anda untuk membuat gambar:

Definisi Dasar

  • DARI :Tentukan gambar dasar, seperti ubuntu atau debian , digunakan untuk memulai proses pembuatan. Diperlukan untuk setiap Dockerfile.
  • PENGELOLA :Tentukan nama lengkap dan alamat email pembuat gambar.

Variabel

  • ENV :Menyetel variabel lingkungan yang bertahan saat penampung disebarkan.
  • ARG :Tetapkan variabel waktu pembuatan yang lumayan. Dapat digunakan sebagai alternatif untuk ENV untuk membuat variabel yang tidak bertahan saat container di-deploy dari image.

Eksekusi Perintah

  • JALANKAN :Jalankan perintah, seperti perintah penginstalan paket, pada lapisan gambar baru.
  • CMD :Jalankan perintah tertentu dalam wadah yang disebarkan dengan gambar, atau setel parameter default untuk ENTRYPOINT petunjuk. Hanya satu yang digunakan per Dockerfile.
  • ENTRYPOINT :Menyetel aplikasi default untuk digunakan setiap kali container di-deploy dengan image. Hanya satu yang digunakan per Dockerfile.
  • USER :Mengatur UID (nama pengguna) untuk menjalankan perintah di wadah.
  • DIREKTUR KERJA :Setel jalur penampung tempat perintah Dockerfile berikutnya dijalankan.
Catatan RUN , CMD , dan ENTRYPOINT masing-masing dapat dijalankan di shell form, yang mengambil argumen normal, atau exec form, yang mengambil argumen sebagai larik JSON. Karena exec form tidak memanggil shell perintah, umumnya lebih disukai dan digunakan dalam panduan ini.

Pengelolaan Data

  • TAMBAHKAN :Menyalin file dari sumber ke sistem file gambar di tujuan yang ditetapkan dengan tarball otomatis dan penanganan URL jarak jauh.
  • SALIN :Mirip dengan ADD tetapi tanpa tarball otomatis dan penanganan URL jarak jauh.
  • VOLUME :Mengaktifkan akses dari titik pemasangan yang ditentukan dalam wadah ke direktori pada mesin host.

Jaringan

  • EKSPOSE :Mengekspos port tertentu untuk mengaktifkan jaringan antara container dan dunia luar.

Selanjutnya, kita akan membuat contoh Dockerfile yang menggunakan beberapa perintah ini.

Membuat Dockerfile

Untuk membuat Dockerfile:

  1. Pada prompt perintah (baik melalui SSH atau Lish di Linode Manager), buat dan ubah ke direktori baru:

    mkdir ~/mydockerbuild && cd ~/mydockerbuild
    
    Catatan Ini menempatkan direktori build Docker di direktori home Anda. Sebagai praktik yang baik, jangan simpan Dockerfile di direktori home Anda sendiri atau direktori root server. Sebagai gantinya, buat direktori terpisah dan tempatkan semua file yang diperlukan di dalamnya (bersama Dockerfile) seperti yang ditunjukkan dalam panduan ini.
  2. Buat contoh Dockerfile:

    touch example_dockerfile
    
  3. Buka Dockerfile menggunakan editor teks pilihan Anda (untuk contoh ini, kami menggunakan nano):

    nano example_dockerfile
    
  4. Salin contoh berikut ke Dockerfile Anda. Ini membuat Dockerfile yang menghasilkan gambar Debian, mengatur informasi pengelola, dan hanya mengembalikan "Halo, Sunshine!" saat dijalankan:

    File:example_dockerfile
    1
    2
    3
    
    FROM debian
    MAINTAINER Jane Doe [email protected]
    CMD ["echo", "Hello, Sunshine!"]
  5. Simpan file Docker.

  6. Masukkan cat example_dockerfile dan pastikan teks dari atas disertakan.

Membuat Gambar Docker dari Dockerfile

Bangun image dari Dockerfile menggunakan docker build perintah:

docker build ~/mydockerbuild -f example_dockerfile -t example_image

Memberi label pada gambar Anda dengan example_image membuatnya lebih mudah untuk men-deploy container di langkah berikutnya.

Outputnya akan terlihat seperti ini:

Sending build context to Docker daemon  4.096kB
Step 1/3 : FROM debian
 ---> 4a7a1f401734
Step 2/3 : MAINTAINER Jane Doe [email protected]
 ---> Running in fdd81bd8b5c6
Removing intermediate container fdd81bd8b5c6
 ---> 1253842068a3
Step 3/3 : CMD ["echo", "Hello, Sunshine!"]
 ---> Running in d33e1bacf1af
Removing intermediate container d33e1bacf1af
 ---> a5d95e138b97
Successfully built a5d95e138b97
Successfully tagged example_image:latest

Seperti yang Anda lihat, instruksi dari example_dockerfile dieksekusi secara berurutan. Gambar berlabel example_image sekarang siap dijalankan untuk men-deploy container.

Menjalankan Gambar Docker Anda untuk Men-deploy Container

Menjalankan image yang baru saja Anda buat untuk men-deploy container Docker kini semudah memasukkan yang berikut:

docker run example_image

Wadah baru berdasarkan example_image dikerahkan, dan perintah yang ditentukan dalam CMD instruksi kemudian dieksekusi dari wadah dengan output berikut:

Hello, Sunshine!
Catatan Jika docker run perintah dijalankan dan image Docker tidak tersedia di direktori kerja Anda saat ini, melainkan diambil dari registri Docker.

Bacaan Lebih Lanjut

Selamat! Anda telah membuat Dockerfile pertama Anda dan menjalankan image Docker pertama Anda.

Untuk contoh dan informasi lebih lanjut tentang penggunaan Dockerfiles dengan image dan container Docker, lihat:

  • panduan kami tentangCara Menggunakan Gambar Docker, Wadah, dan File Docker Secara Mendalam;

  • Praktik Terbaik Dockerfile Docker.

Informasi Lebih Lanjut

Anda mungkin ingin berkonsultasi dengan sumber daya berikut untuk informasi tambahan tentang topik ini. Meskipun ini disediakan dengan harapan dapat bermanfaat, harap perhatikan bahwa kami tidak dapat menjamin keakuratan atau ketepatan waktu materi yang dihosting secara eksternal.

  • Praktik Terbaik untuk Menulis File Docker
  • Gambar Resmi Docker di Docker Hub
  • Dokumen Docker

Docker
  1. Cara Menggunakan Gambar Docker, Wadah, dan File Docker Secara Mendalam

  2. Cara Menggunakan Perintah Inspeksi Docker

  3. Cara melakukan perubahan pada gambar Docker

  1. Cara Menggunakan Tulis Docker

  2. Cara Menggunakan Dockerfile ONBUILD untuk Menjalankan Pemicu pada Build Hilir

  3. Cara Memodifikasi Gambar Docker

  1. Cara Membuat dan Mengonfigurasi Gambar Docker Kustom secara Otomatis dengan Dockerfile – Bagian 3

  2. Cara mengkonfigurasi buruh pelabuhan untuk menggunakan proxy

  3. Cara membuat Gambar Docker dari Wadah dan File Docker