Rumah > pembangunan bahagian belakang > Golang > Membina gambar Docker yang minimum

Membina gambar Docker yang minimum

Linda Hamilton
Lepaskan: 2025-01-29 14:07:09
asal
917 orang telah melayarinya

Building Minimal Docker Images

Mirror Docker yang diselaraskan: Kelebihan revolusioner Meningkatkan aliran kerja

mari kita bercakap mengenai Docker. Ya, alat ajaib ini nampaknya dipuji oleh setiap pemaju. Ia menjanjikan untuk menjadikan kehidupan kita lebih mudah dan penggunaannya lebih lancar. Tetapi masalahnya ialah cermin Docker anda mungkin kembung. Mereka seperti beg besar yang anda pakai untuk hujung minggu, penuh dengan perkara yang tidak perlu, anda tidak dapat mencari apa yang anda perlukan! Ini seperti menggunakan ransel dan bukannya satu bingkai. Sekarang, mari memperkenalkan ke Docker Mirror

, ini adalah pelan penurunan berat badan utama bekas anda. ?

Ini bukan hanya beberapa orang yang mengurangkan cermin, tetapi tentang mencipta bekas yang diperkemas, cekap, dan cepat. Jadi, pasangkan tali pinggang keledar! Kami akan meneroka dunia cermin Docker yang diselaraskan, dan menggunakan contoh sebenar dan langkah -langkah sebenar untuk memperkayakannya.

Apakah kepentingan cermin Docker yang diselaraskan? ?

Cermin Docker dianggap sebagai diet diet. Daripada mengisi perpustakaan, alat dan konfigurasi yang tidak perlu, lebih baik memasukkan item yang diperlukan. Ini seperti memerintahkan pizza Margaret yang mudah dan bukannya pizza "mewah" yang penuh dengan pelbagai bahan. Rasanya lebih baik dan kesannya lebih baik.


Berikut adalah perbandingan pantas:

----

Kenapa anda perlu mengambil berat tentang cermin Docker yang diselaraskan? ?

Jika anda berfikir, "Mengapa membayar begitu banyak? Aplikasi saya berjalan lancar", maka cermin yang diselaraskan adalah

alasan untuk mengubah peraturan permainan seperti berikut:

1. Keselamatan: Lebih banyak diperkemas, lebih mudah?

Setiap ketergantungan tambahan, alat atau perpustakaan dalam cermin Docker adalah kelemahan yang berpotensi. Cermin yang diselaraskan mengurangkan permukaan serangan. Bahagian yang lebih sedikit, semakin kurang penggodam. Ia seperti mengunci semua pintu anda -tidak ada tetamu yang tidak diundang di sini! 2. Simpan kos?

Penyimpanan dan jalur lebar tidak percuma, terutama di awan. Sama ada anda dikerahkan pada AWS, Azure atau GCP, anda akan mengumpul setiap bait. Cermin mudah dapat menjimatkan kos penyimpanan dan mengurangkan kos penghantaran data. Anda boleh menggunakan wang ini untuk membeli pizza. ?

3. Pengembangan mudah?

Apabila anda menggunakan pelbagai bekas dalam kluster, setiap saat adalah penting. Kelajuan permulaan cermin yang lebih kecil lebih cepat, menjadikan lanjutan lebih mudah.

Langkah demi Langkah: Membina cermin Docker yang diselaraskan?

mari kita memperkaya dengan contoh sebenar! Kami akan membina aplikasi GO yang mudah dan membuat cermin Docker Super -Cightweight untuknya.

Struktur Projek?

folder projek anda harus ditunjukkan di bawah:

pergi aplikasi

main.go
- Sederhana "Hello, World!" Kerana mengapa hidup rumit?

go.mod

- Tentukan modul dan versi Go.

Rahsia: Strelfile Dockerfile?

Berikut adalah resipi rahsia sihir cermin yang diselaraskan yang dibina dalam pelbagai peringkat:
<code>/dockerized-golang-server
  |-- Dockerfile
  |-- go.mod
  |-- main.go</code>
Salin selepas log masuk
Salin selepas log masuk

prinsip kerja:

Construct
<code>package main

import (
    "fmt"
    "net/http"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Hello, World!")
    })
    http.ListenAndServe(":8080", nil)
}</code>
Salin selepas log masuk
: Peringkat pertama menyusun aplikasi. Peringkat kedua hanya termasuk fail binari yang disusun.

Gores Mirror Basic : Imej elemen paling ringan (0 byte). Ini seperti bermula dengan sekeping kertas putih.

<code>module github.com/krishnaaher/golang-server
go 1.23.3</code>
Salin selepas log masuk
Tiada kandungan tambahan

: Tiada perpustakaan, alat atau fail yang tidak perlu -hanya aplikasi anda.

<code># 阶段1:构建Go应用程序
FROM golang:1.23.3-alpine AS builder

WORKDIR /app

COPY go.mod .
COPY main.go .

RUN go build -o /app/main

# 阶段2:创建一个精简的运行时环境
FROM scratch

COPY --from=builder /app/main /app/main

# 运行应用程序的命令
CMD ["/app/main"]</code>
Salin selepas log masuk
Bina dan jalankan cermin anda yang diperkemas?

Berikut adalah bagaimana dari sifar ke wira dalam beberapa langkah mudah: 1. Bina imej cermin

  • Jalankan arahan berikut dalam direktori projek anda:
  • 2. Periksa saiz
  • Sahkan sama ada cermin anda diselaraskan seperti yang anda mahukan:
  • mengharapkan output:
3. Jalankan bekas

jalankan imej cermin anda dan peta ke port 8080:

4. Aplikasi Ujian

Buka penyemak imbas anda atau gunakan curl untuk ujian:

<code>docker build -t go-minimal-server .</code>
Salin selepas log masuk
output:
<code>/dockerized-golang-server
  |-- Dockerfile
  |-- go.mod
  |-- main.go</code>
Salin selepas log masuk
Salin selepas log masuk

Faktor utama kejayaan?

    Membina
  • : Menyusun dalam satu peringkat dan berjalan di peringkat lain. Ia bersih, cekap, dan terus mencerminkan kecil. Pilih imej cermin asas yang betul
  • : Mula dari awal untuk mendapatkan imej terkecil. Jika anda memerlukan beberapa ciri OS asas, Alpine adalah pilihan yang baik.
  • Padam kebergantungan yang tidak perlu : Gunakan mod rapi atau alat yang serupa untuk membersihkan bahasa anda.
  • Ujian Tempatan : Sentiasa menguji cermin anda yang diperkemas untuk memastikan tidak ada kandungan penting yang hilang.
  • Sekarang, mulakan Docker! Bekas ringan anda menanti anda. ?

Atas ialah kandungan terperinci Membina gambar Docker yang minimum. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan