Belajar Docker untuk Pemula - 10 Membuat Container
Daftar Isi:
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 instruksiARG
. LABEL - Digunakan untuk menambahkan metadata ke gambar, seperti deskripsi, versi, penulis.. dll. Anda dapat menentukan lebih dari satuLABEL
, dan setiap instruksiLABEL
adalah pasangan nilai kunci. RUN - Perintah yang ditentukan dalam instruksi ini akan dieksekusi selama proses build. Setiap instruksiRUN
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 denganADD
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 instruksiCMD
di Dockerfile Anda. ENTRYPOINT - Mirip denganCMD
, instruksi ini mendefinisikan perintah apa yang akan dieksekusi ketika menjalankan sebuah container. WORKDIR - Arahan ini menetapkan direktori kerja saat ini untuk instruksiRUN
,CMD
,ENTRYPOINT
,COPY
, danADD
. PENGGUNA - Tetapkan nama pengguna atauUID
akan digunakan ketika menjalankan instruksiRUN
,CMD
,ENTRYPOINT
,COPY
, danADD
. 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.
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. InstruksiRUN
yang dimulai pada baris3
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. InstruksiEXPOSE
mendefinisikan port yang didengarkan server redis. Pada baris terakhir, kami menggunakan instruksiCMD
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.
Cara menginstal dan menggunakan buruh pelabuhan menulis di centos 7
Docker Compose adalah alat yang memungkinkan Anda untuk mendefinisikan dan menjalankan aplikasi Docker multi-kontainer. Dengan Compose, Anda menentukan layanan aplikasi, jaringan dan volume dalam satu file YAML, lalu putar aplikasi Anda dengan satu perintah.
Cara menginstal dan menggunakan buruh pelabuhan menulis di debian 9
Docker Compose adalah alat yang memungkinkan Anda untuk menentukan dan mengatur aplikasi Docker multi-kontainer. Ini menggunakan file YAML untuk mengkonfigurasi wadah aplikasi, jaringan, dan volume.
Cara menghapus wadah buruh pelabuhan, gambar, volume, dan jaringan
Panduan ini berfungsi sebagai lembar contekan untuk membantu pengguna Docker mengatur sistem mereka, dan untuk membebaskan ruang disk dengan menghapus wadah Docker yang tidak terpakai, gambar, volume, dan jaringan.