Docker - Arahan Perintah
Selamat sejahtera, para ahli Docker masa depan! Saya sangat gembira untuk menjadi panduan Anda dalam perjalanan menarik melalui dunia perintah Docker. Sebagai seseorang yang telah mengajar ilmu komputer selama tahun, saya bisa katakan bahwa Docker seperti tongkat sihir bagi pengembang. Itu membuat kehidupan kita menjadi lebih mudah! Jadi, mari kita roll up our sleeves dan masuk ke realm menarik perintah Docker instruction.
Perintah CMD
Perintah CMD seperti karakter utama dalam sebuah film - itu bintang pertunjukan ketika mengenai kontainer Docker. Itu memberitahu Docker perintah apa yang harus dijalankan saat kontainer Anda mulai.
Sintaks Dasar
CMD ["eksekutable", "param1", "param2"]
mari kitauraikan ini dengan contoh sederhana:
FROM ubuntu
CMD ["echo", "Hello, Docker World!"]
Dalam kasus ini, ketika Anda menjalankan kontainer Anda, itu akan mencetak "Hello, Docker World!" ke konsol. Itu seperti kontainer Anda sedang menjerit " halo" segera setelah bangun!
Beberapa Perintah CMD
Ini adalah pertanyaan kecil: Apa yang terjadi jika Anda memiliki beberapa perintah CMD dalam Dockerfile Anda?
FROM ubuntu
CMD ["echo", "Perintah pertama"]
CMD ["echo", "Perintah kedua"]
Jika Anda menduga bahwa kedua perintah akan dijalankan, saya khawatir Anda jatuh ke dalam penipuan umum! Sebenarnya, hanya perintah terakhir CMD yang akan dieksekusi. Itu seperti dalam sebuah drama - hanya akhir yang penting!
Bentuk Shell vs Bentuk Exec
CMD dapat ditulis dalam dua bentuk:
- Bentuk Shell:
CMD command param1 param2
- Bentuk Exec:
CMD ["eksekutable", "param1", "param2"]
Bentuk exec lebih disukai karena itu lebih jelas dan menghindari masalah parsing shell.
ENTRYPOINT
Jika CMD adalah karakter utama, ENTRYPOINT adalah sutradara film Docker kita. Itu menetapkan perintah utama untuk kontainer, yang tidak dapat diganti saat kontainer mulai.
Sintaks Dasar
ENTRYPOINT ["eksekutable", "param1", "param2"]
Lihat contoh ini:
FROM ubuntu
ENTRYPOINT ["echo", "Hello from"]
CMD ["Docker"]
Ketika Anda menjalankan kontainer ini, itu akan mengeluarkan "Hello from Docker". Tetapi mari kita lihat dimana hal ini menjadi menarik! Jika Anda menjalankan kontainer dengan argumen tambahan, mereka akan mengganti CMD tapi tidak ENTRYPOINT.
docker run myimage World
Ini akan mengeluarkan "Hello from World". Itu seperti ENTRYPOINT menyiapkan panggung, dan CMD (atau argumen runtime) adalah aktor yang tampil di atasnya!
ENV
ENV seperti departemen busana dalam produksi Docker kita. Itu menetapkan variabel lingkungan yang dapat digunakan sepanjang kontainer.
Sintaks Dasar
ENV key=value
Berikut adalah contoh praktis:
FROM ubuntu
ENV MY_NAME="Docker Enthusiast"
CMD ["sh", "-c", "echo Hello, $MY_NAME!"]
Ini akan mengeluarkan "Hello, Docker Enthusiast!" saat kontainer berjalan. Itu seperti memberikan kontainer Anda tag nama!
Beberapa Perintah ENV
Tidak seperti CMD, Anda dapat memiliki beberapa perintah ENV, dan semuanya akan berpengaruh:
FROM ubuntu
ENV MY_NAME="Docker Enthusiast"
ENV MY_DOG=Rex MY_CAT=Fluffy
CMD ["sh", "-c", "echo Hello, $MY_NAME! Your pets are $MY_DOG and $MY_CAT."]
Kontainer ini akan menyapa Anda dan memperkenalkan hewan peliharaan Anda!
WORKDIR
WORKDIR seperti desainer panggung untuk produksi Docker kita. Itu menetapkan direktori kerja untuk setiap perintah yang mengikuti itu dalam Dockerfile.
Sintaks Dasar
WORKDIR /path/to/directory
Lihat contohnya dalam aksi:
FROM ubuntu
WORKDIR /app
COPY . .
CMD ["ls", "-l"]
Dockerfile ini menetapkan direktori kerja ke /app
, menyalin isi direktori saat ini ke dalamnya, dan kemudian mencatat isi saat kontainer berjalan. Itu seperti memberitahu kontainer Anda, "Hey, buat dirimu nyaman di direktori ini!"
Beberapa Perintah WORKDIR
Anda dapat menggunakan WORKDIR beberapa kali untuk mengubah direktori:
FROM ubuntu
WORKDIR /app
WORKDIR src
WORKDIR scripts
RUN pwd
Ini akan mengeluarkan /app/src/scripts
. Itu seperti memberikan kontainer Anda tur dari rumah baru nya!
Menggabungkan Semua
Sekarang kita telah bertemu dengan semua perintah instruksi Docker kita, mari kita lihat bagaimana mereka bekerja bersama dalam sebuah scenario dunia nyata. Bayangkan kita membuat aplikasi web Python sederhana:
FROM python:3.9-slim
# Set variabel lingkungan
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# Set direktori kerja
WORKDIR /app
# Instal dependensi
COPY requirements.txt .
RUN pip install -r requirements.txt
# Salin proyek
COPY . .
# Perintah untuk menjalankan aplikasi
ENTRYPOINT ["python"]
CMD ["app.py"]
Dockerfile ini menyiapkan lingkungan Python, menginstal dependensi, menyalin kode aplikasi kita, dan menentukan bagaimana menjalankan aplikasi. Itu seperti resep untuk membuat lingkungan yang sempurna untuk aplikasi Python kita!
Ringkasan Perintah
Berikut adalah tabel referensi cepat dari perintah yang kita bahas:
Perintah | Deskripsi | Contoh |
---|---|---|
CMD | Menentukan perintah yang akan dijalankan saat kontainer mulai | CMD ["python", "app.py"] |
ENTRYPOINT | Menetapkan perintah utama kontainer | ENTRYPOINT ["python"] |
ENV | Menetapkan variabel lingkungan | ENV MY_VAR=value |
WORKDIR | Menetapkan direktori kerja | WORKDIR /app |
Ingat, perintah ini adalahseperti blok bangunan dari kontainer Docker Anda. Campur dan sesuaikan mereka untuk menciptakan lingkungan yang sempurna untuk aplikasi Anda!
Danitu ada, murid-murid tercinta! Kita telah menjelajahi tanah perintah instruksi Docker, dari bintang CMD ke sutradara ENTRYPOINT, departemen busana ENV, dan desainer panggung WORKDIR. Saya harap panduan ini telah menerangi jalan bagi Anda dalam pengembaraan Docker Anda. Ingat, latihan membuat sempurna, jadi jangan takut untuk mencoba perintah ini. Selamat Dockering!
Credits: Image by storyset