Docker - Membina Fail: Panduan Pemula
Hai daar, para master Docker masa depan! Saya begitu gembira untuk menjadi pandu anda dalam perjalanan yang menarik ke dunia Docker dan membina fail. Sebagai seseorang yang telah mengajar sains komputer selama tahun, saya telah melihat banyak murid terangsang ketika mereka memahami konsep ini. Jadi, mari kita lipatkan lengan dan masuk ke dalam!
Menafikahkan Docker Build
Sebelum kita melompat ke hal-hal kecil, mari kita mulakan dengan asas. Bayangkan anda membina rumah. Anda perlu rancangan, kan? Dalam dunia Docker, rancangan itu dipanggil Dockerfile. Dan seperti bagaimana anda menggunakan rancangan itu untuk membina rumah anda, kita menggunakan perintah docker build
untuk membuat imej Docker daripada Dockerfile kita.
Apa itu docker build?
docker build
adalah perintah yang membaca arahan daripada Dockerfile dan menggunainya untuk membuat imej Docker. Bayangkan ia seperti kontraktor robot peribadi anda yang mengikuti rancangan (Dockerfile) anda setia, membuat replika sempurna persekitaran yang anda nyatakan.
Membuat Dockerfile Pertama Anda
Mari kita mula dengan membuat Dockerfile mudah. Buka editor teks kegemaran anda dan buat fail baru dinamakan Dockerfile
(tanpa sambungan).
FROM ubuntu:latest
RUN apt-get update && apt-get install -y nginx
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
Sekarang, mari kita pecahkan ini:
-
FROM ubuntu:latest
: Ini seperti katakan, "Mulakan dengan sistem operasi Ubuntu terbaru sebagai asas." -
RUN apt-get update && apt-get install -y nginx
: Baris ini mengemaskini senarai pakej dan memasang Nginx. -
EXPOSE 80
: Ini memberitahu Docker bahawa container kita akan mendengarkan port 80. -
CMD ["nginx", "-g", "daemon off;"]
: Ini perintah yang akan dijalankan ketika container kita bermula.
Membina Imej Docker Anda
Sekarang kami mempunyai Dockerfile, mari kita membina imej kita! Buka terminal, navigasi ke direktori yang mengandungi Dockerfile anda, dan jalankan:
docker build -t my-nginx-image .
Flag -t
mengecat imej kita dengan nama, dan titik .
di akhir memberitahu Docker untuk mencari Dockerfile di direktori sekarang.
Jika semua berjalan lancar, anda akan melihat barisan langkah yang dijalankan, dan akhirnya, mesej yang mengatakan imej anda telah dibina dengan jaya.
Teknik Dockerfile Lanjut
Sekarang anda telah mendapat asas, mari kita jelajahi beberapa teknik lanjut.
Membina Bergabung
Membina bergabung adalah seperti memiliki beberapa rancangan untuk bahagian-bahagian rumah anda. Ia membolehkan anda gunakan beberapa pernyataan FROM
dalam Dockerfile anda. Ini terutamanya berguna untuk membuat imej yang lebih kecil dan lebih efektif.
Ini adalah contoh:
# tahap 1: Bangun aplikasi
FROM golang:1.16 AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp
# tahap 2: Buat imej akhir
FROM alpine:latest
WORKDIR /root/
COPY --from=builder /app/myapp .
CMD ["./myapp"]
Dalam contoh ini, kita lebih dulu membina aplikasi Go dalam persekitaran Go, kemudian salin binary yang dibina ke imej Alpine Linux yang lebih kecil.
Menggunakan ARG dan ENV
ARG dan ENV adalah seperti variabel dalam rancangan anda. ARG digunakan semasa proses binaan, sementara ENV menetapkan variabel persekitaran dalam imej akhir.
FROM ubuntu:latest
ARG DEBIAN_FRONTEND=noninteractive
ENV APP_HOME /app
RUN mkdir $APP_HOME
WORKDIR $APP_HOME
Pemeriksaan Kesihatan
Pemeriksaan kesihatan adalah seperti memiliki doktor yang secara tetap memeriksa rumah anda untuk pastikan segalanya baik.
FROM nginx:latest
HEALTHCHECK --interval=30s --timeout=3s \
CMD curl -f http://localhost/ || exit 1
Dockerfile ini termasuk pemeriksaan kesihatan yang mengcurl localhost setiap 30 saat untuk memastikan Nginx menjawab.
Amalan Terbaik untuk Dockerfile
Sekarang, mari bicarakan tentang beberapa amalan terbaik. Ini adalah seperti rules emas pembinaan rumah, tetapi untuk Dockerfiles:
- Gunakan imej asas rasmi jika mungkin
- Minimalkan bilangan lapisan
- Jangan pasang pakej yang tidak diperlukan
- Gunakan fail
.dockerignore
- Susun argumen multi-baris
- Manfaatkan cache binaan
Ini adalah jadual yang menggabungkan amalan ini:
Amalan | Keterangan |
---|---|
Gunakan imej asas rasmi | Menjamin keselamatan dan kebolehpercayaan |
Minimalkan lapisan | Mengurangkan saiz imej dan masa binaan |
Hindari pakej yang tidak diperlukan | Menyimpan imej ringan dan keselamatan |
Gunakan .dockerignore
|
Mengelakkan fail yang tidak diperlukan daripada konteks binaan |
Susun argumen multi-baris | Meningkatkan kebacaan dan memudahkan kemas kini |
Manfaatkan cache binaan | Mempercepatkan binaan berikutnya |
Kesimpulan
Dan begitulah, rakan-rakan! Kita telah menjalani perjalanan dari asas docker build
ke beberapa teknik lanjut dan amalan terbaik. Ingat, menjadi mahir dengan Dockerfiles adalah seperti belajar membina rumah yang sempurna - ia memerlukan latihan, tetapi hasilnya berharga.
Sementara kita mengakhiri, saya diingatkan oleh murid yang pernah katakan kepada saya, "Docker kelihatan seperti sihir pada awalnya, tetapi sekarang saya merasa seperti ahli sihir." Itulah kekuatan memahami konsep ini - ia menukar yang kelihatan seperti sihir menjadi alat yang anda boleh pakai dengan kepercayaan.
Terus cuba, terus bangun, dan terutama, terus menikmati proses. Docker adalah alat yang kuat yang boleh membuat kehidupan pengembangan anda lebih mudah sekali anda menguasaiannya. Dan siapa tahu? Mungkin suatu hari anda akan menjadi yang mengajarkan orang lain tentang keajaiban Docker!
Selamat Dockering, semua orang!
Credits: Image by storyset