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.

Docker - Commands

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:

  1. Bentuk Shell: CMD command param1 param2
  2. 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