Android

Cara membangun gambar buruh pelabuhan dengan buruh pelabuhan

Belajar Docker untuk Pemula - 10 Membuat Container

Belajar Docker untuk Pemula - 10 Membuat Container

Daftar Isi:

Anonim

Gambar Docker adalah cetak biru wadah Docker yang berisi aplikasi dan semua yang Anda butuhkan untuk menjalankan aplikasi. Wadah adalah contoh runtime dari suatu gambar.

Dalam tutorial ini, kami akan menjelaskan apa itu Dockerfile, bagaimana membuatnya, dan bagaimana membuat gambar Docker dengan Dockerfile.

Apa itu Dockerfile?

Dockerfile adalah file teks yang berisi semua perintah yang bisa dijalankan pengguna pada baris perintah untuk membuat gambar. Ini mencakup semua instruksi yang diperlukan oleh Docker untuk membangun gambar.

Gambar Docker terdiri dari serangkaian lapisan sistem file yang mewakili instruksi dalam Dockerfile gambar yang membentuk aplikasi perangkat lunak yang dapat dieksekusi.

File Docker mengambil bentuk berikut:

# Comment INSTRUCTION arguments

INSTRUCTION tidak peka huruf besar-kecil, tetapi konvensi ini adalah untuk menggunakan UPPERCASE untuk namanya.

Di bawah ini adalah daftar dengan deskripsi singkat tentang beberapa petunjuk Dockerfile yang paling sering digunakan:

  • ARG - Instruksi ini memungkinkan Anda untuk menentukan variabel yang dapat dilewati saat build-time. Anda juga dapat menetapkan nilai default. FROM - Gambar dasar untuk membangun gambar baru. Instruksi ini harus menjadi instruksi non-komentar pertama di Dockerfile. Satu-satunya pengecualian dari aturan ini adalah ketika Anda ingin menggunakan variabel dalam argumen FROM . Dalam hal ini, FROM dapat didahului dengan satu atau lebih instruksi ARG . LABEL - Digunakan untuk menambahkan metadata ke gambar, seperti deskripsi, versi, penulis.. dll. Anda dapat menentukan lebih dari satu LABEL , dan setiap instruksi LABEL adalah pasangan nilai kunci. RUN - Perintah yang ditentukan dalam instruksi ini akan dieksekusi selama proses build. Setiap instruksi RUN membuat layer baru di atas gambar saat ini. ADD - Digunakan untuk menyalin file dan direktori dari sumber yang ditentukan ke tujuan yang ditentukan pada gambar buruh pelabuhan. Sumbernya dapat berupa file atau direktori lokal atau URL. Jika sumbernya adalah arsip tar lokal, maka secara otomatis dibongkar ke dalam gambar Docker. COPY - Mirip dengan ADD tetapi sumbernya hanya berupa file atau direktori lokal. ENV - Instruksi ini memungkinkan Anda untuk mendefinisikan variabel lingkungan. CMD - Digunakan untuk menentukan perintah yang akan dieksekusi ketika Anda menjalankan sebuah wadah. Anda hanya dapat menggunakan satu instruksi CMD di Dockerfile Anda. ENTRYPOINT - Mirip dengan CMD , instruksi ini mendefinisikan perintah apa yang akan dieksekusi ketika menjalankan sebuah container. WORKDIR - Arahan ini menetapkan direktori kerja saat ini untuk instruksi RUN , CMD , ENTRYPOINT , COPY , dan ADD . PENGGUNA - Tetapkan nama pengguna atau UID akan digunakan ketika menjalankan instruksi RUN , CMD , ENTRYPOINT , COPY , dan ADD . VOLUME - Memungkinkan Anda untuk memasang direktori mesin host ke wadah. EXPOSE - Digunakan untuk menentukan port tempat kontainer mendengarkan saat runtime.

Untuk mengecualikan file dan direktori agar tidak ditambahkan ke gambar, buat file .dockerignore dalam direktori konteks. Sintaks dari .dockerignore mirip dengan salah satu dari file .gitignore .

Untuk referensi lengkap dan penjelasan terperinci dari instruksi Dockerfile lihat halaman referensi Dockerfile resmi.

Buat Dockerfile

Skenario yang paling umum saat membuat gambar Docker adalah menarik gambar yang sudah ada dari registri (biasanya dari Docker Hub) dan menentukan perubahan yang ingin Anda lakukan pada gambar dasar. Gambar dasar yang paling umum digunakan saat membuat gambar Docker adalah Alpine karena itu kecil dan dioptimalkan untuk dijalankan dalam RAM.

Docker Hub adalah layanan registri berbasis cloud yang di antara fungsi lainnya digunakan untuk menyimpan gambar Docker baik dalam repositori publik atau pribadi.

Dalam contoh ini, kita akan membuat gambar Docker untuk server Redis. Kami akan menggunakan ubuntu 18.04 terbaru sebagai gambar dasar.

Pertama, buat direktori yang akan berisi Dockerfile dan semua file yang diperlukan:

mkdir ~/redis_docker

Arahkan ke direktori dan buat Dockerfile berikut:

cd ~/redis_docker nano Dockerfile Dockerfile

FROM ubuntu:18.04 RUN apt-get update && \ apt-get install -y redis-server && \ apt-get clean EXPOSE 6379 CMD

Mari kita jelaskan arti dari setiap baris di Dockerfile:

  • Pada baris 1 kita mendefinisikan gambar dasar. Instruksi RUN yang dimulai pada baris 3 akan memperbarui indeks apt, instal paket "redis-server" dan bersihkan cache apt. Perintah yang digunakan dalam instruksi sama dengan perintah yang akan Anda gunakan untuk menginstal redis di server Ubuntu. Instruksi EXPOSE mendefinisikan port yang didengarkan server redis. Pada baris terakhir, kami menggunakan instruksi CMD untuk mengatur perintah default yang akan dieksekusi ketika wadah berjalan.

Simpan file dan tutup editor.

Membangun Gambar

Langkah selanjutnya adalah membangun gambar. Untuk melakukannya jalankan perintah berikut dari direktori tempat Dockerfile berada:

docker build -t linuxize/redis.

Opsi -t menentukan nama gambar dan secara opsional nama pengguna dan tag dalam format 'username / imagename: tag'.

Output dari proses build akan terlihat seperti ini:

Sending build context to Docker daemon 3.584kB Step 1/4: FROM ubuntu:18.04 ---> 7698f282e524 Step 2/4: RUN apt-get update && apt-get install -y gosu redis-server && apt-get clean ---> Running in e80d4dd69263… Removing intermediate container e80d4dd69263 ---> e19fb7653fca Step 3/4: EXPOSE 6379 ---> Running in 8b2a45f457cc Removing intermediate container 8b2a45f457cc ---> 13b92565c201 Step 4/4: CMD ---> Running in a67ec50c7048 Removing intermediate container a67ec50c7048 ---> d8acc14d9b6b Successfully built d8acc14d9b6b Successfully tagged linuxize/redis:latest

Saat proses pembangunan selesai, gambar baru akan terdaftar dalam daftar gambar:

docker image ls

REPOSITORY TAG IMAGE ID CREATED SIZE linuxize/redis latest d8acc14d9b6b 4 minutes ago 100MB ubuntu 18.04 7698f282e524 5 days ago 69.9MB

Menjalankan Kontainer

Sekarang setelah gambar dibuat Anda menjalankan wadah darinya dengan menjalankan:

docker run -d -p 6379:6379 --name redis linuxize/redis

Opsi -d memberi tahu Docker untuk menjalankan wadah dalam mode terpisah, opsi -p 6379:6379 akan menerbitkan port 6379 ke mesin host dan opsi --name redis menentukan nama wadah. Argumen terakhir linuxize/redis adalah nama gambar, yang digunakan untuk menjalankan wadah.

Ketika wadah mulai, gunakan perintah berikut untuk mendaftar semua wadah yang berjalan:

docker container ls

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6b7d424cd915 linuxize/redis:v0.0.1 "redis-server '--pro…" 5 minutes ago Up 5 minutes 0.0.0.0:6379->6379/tcp redis

Untuk memverifikasi bahwa semuanya berfungsi sebagaimana mestinya menggunakan redis-cli untuk terhubung ke wadah buruh pelabuhan:

redis-cli ping

Server redis harus merespons dengan PONG .

Kesimpulan

Tutorial ini hanya membahas dasar-dasar penggunaan Dockerfiles untuk membuat gambar. Untuk mempelajari lebih lanjut tentang cara menulis Dockerfiles dan praktik terbaik yang disarankan lihat Praktik terbaik untuk menulis Dockerfiles.

buruh pelabuhan