Dockerfile adalah file teks sederhana yang berisi semua perintah yang dapat dipanggil pengguna pada baris perintah untuk merakit atau membuat gambar. Dengan bantuan build docker, Anda dapat dengan mudah mengotomatiskan build yang menjalankan beberapa perintah yang ditentukan dalam dockerfile secara berurutan.
Misalnya, Anda ingin mengunduh gambar buruh pelabuhan dari hub buruh pelabuhan untuk kebutuhan pengembangan spesifik Anda. Kemudian, Anda ingin memperbarui gambar, menginstal beberapa paket untuk proses pengembangan Anda. Dalam hal ini, Anda dapat membuat file docker, menyertakan semua parameter untuk kebutuhan spesifik Anda, dan membuat gambar kustom Anda. Setelah membuat dockerfile, Anda dapat menggunakannya berulang kali untuk membangun image yang sama tanpa menginstal semua paket yang diperlukan secara manual untuk proses pengembangan Anda.
Dockerfile Dasar
Sebelum bekerja dengan dockerfile jika penting untuk mengetahui cara membuat dockerfile. Dockerfile menyertakan kata kunci spesifik yang dapat digunakan untuk membuat gambar tertentu. Penjelasan singkat tentang semua kata kunci yang digunakan dalam dockerfile tercantum di bawah ini:
- DARI: Digunakan untuk menentukan gambar dasar, di mana kita akan membangun.
- MENAMBAHKAN: Digunakan untuk menambahkan file ke wadah yang sedang dibangun. Secara sederhana, RUN digunakan untuk menjalankan perintah dan melakukan hasilnya
- LARI: Digunakan untuk menambahkan lapisan ke gambar dasar, dengan memasang komponen.
- CMD: Digunakan untuk menjalankan perintah di awal container. Perintah ini hanya berjalan ketika tidak ada argumen yang ditentukan saat menjalankan wadah running.
- TITIK MASUK: Digunakan untuk menjalankan perintah selama proses inisialisasi container. Anda harus menggunakan ENTRYPOINT di dockefile Anda jika Anda ingin memulai wadah secara otomatis setelah membuat gambar.
- ENV: Digunakan untuk mendefinisikan variabel lingkungan dalam run-time container container.
- MEMBUKA: Digunakan untuk menentukan port mendengarkan untuk mengaktifkan jaringan saat dijalankan.
- PEMELIHARA: Digunakan untuk menentukan nama dan id email pembuat gambar.
- PENGGUNA: Digunakan untuk menentukan nama pengguna yang digunakan untuk menjalankan wadah.
- VOLUME: Digunakan untuk mengizinkan akses dari wadah ke direktori pada host Docker.
- DIRI KERJA: Digunakan untuk menentukan jalur perintah yang akan dieksekusi pada saat dijalankan.
- LABEL: Digunakan untuk menambahkan label ke gambar buruh pelabuhan.
Membuat Dockerfile
Di bagian ini, kita akan membuat file docker untuk membangun image server LAMP dari image dasar Ubuntu.
Pertama, Anda perlu membuat direktori untuk menyimpan file docker. Anda dapat membuatnya dengan perintah berikut:
mkdir LAMPUSelanjutnya, buat direktori bernama Dockerfile di dalam direktori:
nano LAMP/DockerfileTambahkan baris berikut:
DARI ubuntu: terbaruPENGELOLA Hitesh Jethva
ENV DEBIAN_FRONTEND=noninteraktif
JALANKAN apt-get update -y && apt-get install Apache2 mariadb-server
libapache2-mod-php php php-cli php-common php-mysql php-json php-curl -y
CMD ["apachectl","-D",,"FOREGROUND"]
Paparan 8080
Simpan dan tutup file setelah Anda selesai.
Membangun Gambar dengan Dockerfile
Setelah membuat Dockerfile, Anda dapat dengan mudah membuat image LAMP kustom dengan bantuan Dockerfile.
Pertama, ubah direktori ke LAMP dan jalankan perintah berikut untuk membuat gambar dari file itu:
cd LAMPUdocker build -t "lampu:Dockerfile".
Perintah di atas akan mulai mengunduh gambar terbaru Ubuntu dari Docker Hub dan menginstal paket yang diperlukan yang ditentukan dalam Dockerfile Do. Setelah gambar berhasil dibuat, Anda akan melihat output berikut:
Mengirim konteks build ke daemon Docker 2.048kBLangkah 1/6 : DARI ubuntu: terbaru
terbaru: Menarik dari perpustakaan/ubuntu
54ee1f796a1e: Tarik selesai
f7bfea53ad12: Tarik selesai
46d371e02073: Tarik selesai
b66c17bbf772: Tarik selesai
Intisari: sha256:31dfb10d52ce76c5ca0aa19d10b3e6424b830729e32a89a7c6eee2cda2be67a5
Status: Mengunduh gambar yang lebih baru untuk ubuntu: terbaru
---> 4e2eef94cd6b
Langkah 2/6 : PEMELIHARA Hitesh Jethva
---> Berjalan di 047977af2c2a
Menghapus wadah perantara 047977af2c2a
---> 1331df625c4c
Langkah 3/6 : ENV DEBIAN_FRONTEND=noninteractive
---> Berjalan di 3597152c7a1b
Melepaskan wadah perantara 3597152c7a1b
---> 86c82c95e75d
Langkah 4/6 : JALANKAN apt-get update -y && apt-get install apache2 mariadb-server
libapache2-mod-php php php-cli php-common php-mysql php-json php-curl -y
Menghapus wadah perantara 322532299fd9
---> f6897a9554f7
Langkah 5/6 : CMD ["apachectl","-D",,"FOREGROUND"]
---> Berjalan di 669635bc8bcb
Melepaskan wadah perantara 669635bc8bcb
---> e8400eb2e677
Langkah 6/6 : MENGUNGKAPKAN 8080
---> Berjalan di 937ae2b2d305
Menghapus wadah perantara 937ae2b2d305
---> 2123a857361d
Berhasil membangun 2123a857361d
Berhasil menandai lampu:Dockerfile
Anda sekarang dapat membuat daftar gambar yang baru Anda buat dengan menjalankan perintah berikut:
gambar buruh pelabuhanAnda akan melihat output berikut:
UKURAN GAMBAR ID TAG REPOSITORY DIBUATlampu Dockerfile 2123a857361d 44 detik yang lalu 520MB
ubuntu 4e2eef94cd6b terbaru 8 hari yang lalu 73.9MB
Sekarang, Anda memiliki gambar server LAMP khusus di tangan Anda. Anda juga dapat melihat riwayat setiap perintah dengan perintah berikut:
lampu riwayat buruh pelabuhan: DockerfileAnda akan melihat output berikut:
GAMBAR DIBUAT OLEH UKURAN KOMENTAR2123a857361d 16 menit yang lalu /bin/sh -c #(nop) EXPOSE 8080 0B
e8400eb2e677 16 menit yang lalu /bin/sh -c #(nop) CMD ["apachectl" "-D" "FO… 0B
f6897a9554f7 16 menit yang lalu /bin/sh -c apt-get update -y && apt-get inst… 446MB
86c82c95e75d 17 menit yang lalu /bin/sh -c #(nop) ENV DEBIAN_FRONTEND=nonin… 0B
1331df625c4c 17 menit yang lalu /bin/sh -c #(nop) MAINER Hitesh Jethva 0B
4e2eef94cd6b 8 hari yang lalu /bin/sh -c #(nop) CMD ["/bin/bash"] 0B
Membuat Wadah dari Gambar LAMP
Sekarang, Anda dapat menjalankan wadah dari gambar Anda menggunakan perintah berikut:
docker run -dit lamp:DockerfileSetelah wadah dimulai, Anda akan melihat output berikut:
0d2beb7dba01bb763768b116f734ae68286cee00d2ae923b2b7241c39ad54208Anda dapat memverifikasi container yang sedang berjalan menggunakan perintah berikut:
buruh pelabuhanAnda harus mendapatkan output berikut:
CONTAINER ID IMAGE COMMAND DIBUAT NAMA PORT STATUSc14794784eb2 lamp:Dockerfile "apachectl -D FOREGR… " 2 menit yang lalu Naik 2 menit 0.0.0.0:8080->8080/tcp quirky_ramanujan
Kesimpulan
Dalam panduan ini, Anda mempelajari apa itu Dockerfile dan cara membuat image buruh pelabuhan dengan Dockerfile. Ini sangat berguna untuk membuat gambar khusus Anda alih-alih melakukan perubahan pada gambar yang ditarik.