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

Pengantar Singkat Untuk Dockerfile

Dalam panduan singkat ini, izinkan saya memberi Anda pengantar singkat tentang Dockerfile dan mengajari Anda cara menggunakannya untuk mengotomatiskan proses pembuatan gambar buruh pelabuhan khusus. Dockerfile tidak lain adalah file teks sederhana dengan instruksi untuk membuat gambar buruh pelabuhan. Ini berisi semua perintah yang dapat dipanggil pengguna pada baris perintah untuk membuat gambar. Kita dapat menggunakan file docker untuk membuat gambar kustom kita sendiri. Kami kemudian dapat membagikan gambar Docker khusus ini melalui Docker Hub . Bagi mereka yang bertanya-tanya, Docker Hub adalah layanan repositori yang dihosting yang disediakan oleh Docker untuk menemukan dan berbagi gambar kontainer dengan tim Anda dan tentu saja dengan siapa pun di dunia.

Bayangkan skenario ini. Sebelumnya jika kita ingin menggunakan Jenkins , maka kita perlu menginstal Jenkins dengan banyak langkah yang terlibat. Berkat Dockerhub, kami sekarang dapat mengunduh dan menjalankan image container bawaan Jenkins dalam beberapa menit.

Gambar wadah Jenkins di dockerhub

Untuk menarik gambar Jenkins dari DockerHub, jalankan:

# docker pull Jenkins

Setelah kita menarik gambar buruh pelabuhan, kita dapat menggunakannya dengan menjalankan gambar tersebut menggunakan perintah:

# docker run -it -d -p 8080:8080 jenkins

Sesederhana itu!

Untuk mengetahui lebih lanjut tentang penggunaan Docker, lihat panduan berikut.

  • Memulai Docker

Ada lebih dari 100.000 gambar kontainer dari vendor perangkat lunak, proyek sumber terbuka, dan komunitas yang tersedia di Dockerhub. Anda dapat mencari dan mengunduh gambar kontainer apa pun pilihan Anda dari Dockerhub dan segera mulai menggunakannya seperti yang ditunjukkan di atas.

Memahami format file Docker

Docker dapat membuat gambar secara otomatis dengan membaca petunjuk dari file Docker.

Dockerfile tipikal berisi instruksi berikut:

1. DARI - Ini akan mengatur gambar dasar wadah.

Contoh:

FROM ubuntu:18.04

Ini akan mengatur gambar dasar wadah sebagai Ubuntu. Jika tag 18.04 tidak ditentukan, itu akan mengambil tag sebagai "terbaru".

2. LABEL - Ini adalah pasangan nilai kunci yang digunakan untuk menentukan informasi metadata gambar.

Contoh:

LABEL ENV=”DEVELOPMENT”

3. JALANKAN - Digunakan untuk menjalankan perintah pada gambar dasar dan akan membuat layer baru.

Contoh:

RUN apt-get update
RUN apt-get install tomcat

4. CMD - Digunakan untuk mengatur perintah yang akan dieksekusi terlebih dahulu saat container dimulai.

Contoh:

CMD [“java”, “-jar”, “app.jar”]

5. EKSPOSE - Ini akan mengekspos port untuk mengakses wadah. Kontainer akan mendengarkan pada port jaringan ini. Kita dapat mengakses
output menggunakan port ini.

Contoh:

EXPOSE 8080

6. PELOPOR - Ini akan memberikan detail penulis yang membuat gambar Docker ini.

Contoh:

MAINTAINER [email protected]

7. ENV - Digunakan untuk mengatur variabel lingkungan dalam pasangan nilai kunci. Variabel-variabel ini disetel selama pembuatan gambar
dan tersedia setelah wadah dibuat.

Contoh:

ENV DB_NAME=”MySQL”
ENV DB_VERSION=”8.0”

8. SALIN - Digunakan untuk menyalin file lokal ke wadah.

Contoh:

COPY /target/devops.jar devops.jar

9. TAMBAHKAN - Ini berfungsi sama seperti menyalin tetapi memiliki beberapa fitur lain seperti kita dapat mengekstrak tar lokal dan menambahkan URL jarak jauh.

Contoh:

ADD devops.tar.xz / .
ADD http://example.com/abc.git /usr/local/devops/

10. ENTRYPOINT - Digunakan untuk mengatur perintah utama untuk gambar. Ini bekerja sama seperti instruksi CMD. Itu
satu-satunya perbedaan antara CMD dan ENTRYPOINT adalah instruksi tidak ditimpa di ENTRYPOINT.

Contoh:

ENTRYPOINT [“java”, “-jar”, “app.jar”]

11. VOLUME - Ini akan membuat titik mount dengan nama yang ditentukan.

Contoh:

VOLUME /app/devops

12. USER - Ini akan menetapkan nama pengguna dan grup pengguna untuk digunakan saat menjalankan gambar.

Contoh:

USER dhruv
USER admin

13. WORKDIR - Ini akan mengatur direktori kerja. Ini akan membuat direktori jika tidak ada.

Contoh:

WORKDIR /var/lib/

Berikut adalah contoh Dockerfile untuk referensi Anda.

FROM ubuntu:latest
MAINTAINER Dhruv Tiwari "[email protected]"
RUN apt-get install -y software-properties-common python
RUN add-apt-repository ppa:chris-lea/node.js
RUN echo "deb http://us.archive.ubuntu.com/ubuntu/ precise universe" >>
/etc/apt/sources.list
RUN apt-get update
RUN apt-get install -y nodejs
RUN mkdir /var/www
ADD app.js /var/www/app.js
CMD ["/usr/bin/node", "/var/www/app.js"]

Izinkan saya untuk menunjukkan kepada Anda contoh sederhana untuk membuat contoh Dockerfile dan membuat gambar dengan menggunakannya.

Membuat Dockerfile

Buat file bernama Dockerfile , tambahkan konten dalam file. Dalam contoh berikut, kami memperbarui dan memasang vim dan ikal .

# cat dockerfile
FROM alpine

RUN apk update
RUN apk add vim
RUN apk add curl

dockerfile untuk alpine

Sekarang kita memiliki Dockerfile di tempatnya. Mari kita lanjutkan dan membuat gambar menggunakan Dockerfile.

Buat gambar menggunakan Dockerfile

Untuk membuat gambar dari Dockerfile, cukup jalankan:

# docker build -t devops .

Harap perhatikan titik (.) di akhir.

Sesuai perintah di atas, Docker akan mulai membuat gambar secara otomatis dengan membaca instruksi dari Dockerfile disimpan di direktori kerja saat ini.

Jika Dockerfile disimpan di tempat lain, Anda dapat menyebutkan jalurnya menggunakan -f tandai seperti di bawah ini.

# docker build -f /path/to/a/Dockerfile .

Setelah membuat gambar, kita dapat menjalankannya menggunakan perintah:

# docker run -it devops

Ini adalah bagaimana seseorang dapat membuat gambar wadah khusus menggunakan Dockerfile. Semoga ini membantu. Kami hanya membahas dasar-dasarnya. Ada banyak lagi yang dapat Anda lakukan dengan Dockerfile. Saya menyarankan Anda untuk merujuk referensi Dockerfile resmi panduan untuk mempelajarinya lebih lanjut.

Bacaan yang disarankan:

  • Menjelaskan Konsep Jaringan Docker
  • Menjelaskan Volume Docker Dengan Contoh
  • Cara Memperbarui Wadah Docker yang Berjalan Secara Otomatis
  • ctop – Alat Pemantau Baris Perintah Untuk Wadah Linux
  • Portainer – Cara Termudah Mengelola Docker
  • PiCluster – Aplikasi Manajemen Docker Berbasis Web Sederhana
  • Dockly – Kelola Kontainer Docker Dari Terminal

Tentang Penulis:

Dhruv Tiwari adalah Insinyur DevOps yang suka mengotomatisasi berbagai hal, bekerja dengan Linux dalam skala besar dan memimpikan hari ketika sistem cukup pintar untuk tidak perlu masuk ke kotak Linux. Perjalanan CI/CD dari kode sumber ke penerapan kode hingga produksi.


Docker
  1. Ekstrak File Dari Gambar Docker?

  2. Cara Memodifikasi Gambar Docker

  3. Pengantar Kontainer Docker

  1. Pengantar Gambar Docker

  2. Pengantar Docker

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

  1. Pengantar singkat untuk unit jalur

  2. Cara Menggunakan Dockerfile untuk Membangun Gambar Docker

  3. Pengantar Docker