Okay, bu Docker evrimini parçalayalım.
Docker’ın nasıl hissettiğini hatırlıyor musunuz? O kadar çok komut, o kadar çok kavram. Build, run, push, pull, volumes, networks... kafam dönüyordu.olmalı, ama her zaman biraz sıkıntılı hissettim, biraz ... sürtünme dolu. terminal tarihim sadece bir karışıklık oldudocker ps -a
ve umutsuzca hatırlamaya çalışıyorbirGeçen hafta gelen komutlar.
Sonra, yavaş yavaş, şeyler tıklamaya başladı. Bir büyük eureka anı değil, küçük "aha!" keşifler serisi. Küçük ipuçları, optimizasyonlar, iş akışının ayarlamaları. Hacks, sanırım? Ve dürüst olmak gerekirse, onlar günlük rutinime o kadar çok girdi ki artık onları düşünemiyorum. Onlar sadece...Şeyleri nasıl yapıyorum.
İşte oynanan değişiklikler:
Terminal Aliases: The Sanity Savers Altyazıları
İlk büyük zafer mi?Aliases.♂️ ♂️ ♂️ ♂️ ♂️ ♂️ ♂️ ♂️ ♂️ ♂️ ♂️ ♂️ ♂️ ♂️docker-compose up -d --build
veyadocker ps
tekrar tekrar tekrar tekrar? benim içimde basit altyazılar kurmak.bashrc
veya.zshrc
bir keşif oldu.
# My sanity savers
alias dcu='docker-compose up -d'
alias dcd='docker-compose down'
alias dcb='docker-compose build'
alias dcr='docker-compose run --rm' # For running one-off commands
alias dps='docker ps'
alias dpa='docker ps -a'
alias di='docker images'
alias dip='docker image prune -f' # Prune dangling images
alias dvp='docker volume prune -f' # Prune unused volumes
alias dsp='docker system prune -af' # The big cleanup! 💥
sadece tipikdcu
Tüm shebang yerine? Oh, millisecondlar kurtarıldı! Sıradışı geliyor, ama günde onlarca kez çoğaltın... birikiyor. parmaklarım bana teşekkür ediyor. Daha az yazma, daha az yazma, daha fazla akış.
Docker'ın en son cheatsheet'ini buradan alın:Docker Cheatsheet Hakkında
2. Güçlü.dockerignore
Diğer adı: Slimming Down Builds
Ardından gelen.dockerignore
Anasayfa » Güncel Haberler » Diğer Bilgiler.gitignore
Tabii ki, ama başlangıçta ne kadar önemli olduğunu anlamadım..dockerignore
Önceki İçerikDocker’ın yapım aşamasıBu kadar yavaşNeden? çünkü inşaat bağlamı gönderiyorduherşeyDocker Daemon’a geçelim.node_modules
, günlükleri, geçici dosyaları, yerel inşaat eserleri... her şey!
Doğru bir yapı oluşturmak.dockerignore
Dosya, ihtiyacım olmayan tüm çöpleri listeleyerekiçerideGörüntü oluşturma işlemi? Aniden, oluşturmalar daha hızlıydı. Görüntüler daha küçüktü (bazen dramatik bir şekilde). Docker'a gözlük koymak gibi hissettim ve ona şöyle dedim: "Sadece odaklanınBuDaha az karışıklık, daha hızlı geri bildirim döngüsü.
3. Çeşitli aşamalı binalar: Lean, Mean Production Machines ➡️
Multi-stage builds... tamam, bu başlangıçta biraz daha ileri görünüyordu. Konsept mükemmel, ancak.
- 1. Adım: Uygulama eserini oluşturmak için gerekli tüm oluşturucu araçları, kompilörleri, SDK'ları ve bağımlılıkları içeren bir temel görüntü kullanın (örneğin, bir kompile edilmiş ikili veya birleştirilmiş JavaScript).
- 2. Adım: Yeni, temiz, minimal temel bir görüntü başlatın (örneğin alpin veya güvensiz).
- Kopyalama: Sadece ilk aşamadan bu temiz ikinci aşamaya nihai eser kopyalayın.
Sonuç? Küçük üretim görüntüleri! İnşaat araçları ve dev bağımlılıkları ile şişirilmiş görüntüleri göndermek yerine (ki bu da bir güvenlik riski!).SadeceUygulamayı çalıştırmak için neye ihtiyacım var.Sintax etrafında kafamı sarmak biraz zaman aldı, ama wow, görüntü boyutunda ve güvenlik pozisyonunda fark çok büyük.
Docker Compose Overrides: Taming Environments ️
Hadi konuşalımDocker Compose override
Dosyaları. Farklı ortamları yönetmek acı vericiydi. Dev'in canlı kod yeniden yükleme için monte edilen hacimlere ihtiyacı vardı. Prod farklı çevre değişkenlerine, belki de daha sıkı kaynak sınırlarına, belki de farklı bir giriş noktasına ihtiyacı vardı.docker-compose.yml
karmaşık, yorumlu bölümleri veya karmaşık bölümleri içerenif
Çevre değişkenlerine göre değişkenler.
keşfetmekdocker-compose.override.yml
Güzel bir yerdi. Sizin temeliniz vardocker-compose.yml
Birleşik Konfigürasyon: Daha sonra oluşturundocker-compose.override.yml
(Git tarafından genellikle göz ardı edilen.gitignore
Kullanacağınız ürünler hakkında bilgi almak için tıklayınız: Kullanacağınız ürünler hakkında bilgi almak için tıklayınız: Kullanacağınız ürünler hakkında bilgi almak için tıklayınız: Kullanacağınız ürünler için tıklayınız: Kullanacağınız ürünler için tıklayınız: Kullanacağınız ürünler için tıklayınız: Kullanacağınız ürünler için tıklayınız: Kullanacağınız ürünler için tıklayınız: Kullanacağınız ürünler için tıklayınız: Kullanacağınız ürünler için tıklayınız: Kullanacağınız ürünler için tıklayınız:override
Belirli dosyalara sahip olabilirsiniz, örneğindocker-compose.prod.yml
ve kullanmak için-f
Bayrakları :docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d
Daha fazla dev ayarlarının tesadüfen işlenmesi yok!Hallelujah!
5. Düzenli Temizleme: Sistem Tidy tutmak ✨
Son olarak, alışkanlıkregular cleanupDocker toplayabiliro kadar çokDikkatli değilseniz zamanla zorlayabilirsiniz. tehlikeli görüntüler (daha önceki yapılardan etiketlenmiş katmanlar), kullanılmayan hacimler, durdurulan konteynerler, eski yapı önbellekleri... Disk alanım gizemli bir şekilde kayboldu.
Periodik olarak koşmanın ritmine girmekdocker system prune -af
(Avrupa yaklaşımı) ya da daha etkilidocker image prune
vedocker volume prune
vedocker network prune
vedocker builder prune
Digital decluttering gibi hissediyor. İşleri düzgün çalıştırır, garip caching sorunlarını önler ("Neden benim değişimim ortaya çıkmıyor?!"), ve değerli gigabyte serbest bırakır. Temiz bir çalışma alanı, temiz bir zihin, değil mi? ♂️ Koşmadsp
(Benim Alias içindocker system prune -af
) artık tatmin edici, neredeyse terapötik bir rutin.
Yani evet, bunlar artık sadece "hackler" değil. Onlar kökleştirilmiştir. Onlar kas hafızası. Alias düşünmeden parmaklarımdan uçuyor..dockerignore
oluşturduğum ilk dosyaların biriydi. Çok aşamalı yapılandırmalar potansiyel olarak canlı olan her şey için varsayılandır. Kompozisyonlar çevresel farklılıkları düzgün bir şekilde ele alır.
Docker, o acımasız yavrudan güçlü, akıllı bir asistan haline geldi. Şimdi benim yolumdan çıkıyor. Yapılar daha hızlı, dağıtımlar daha pürüzsüz, disk alanım daha mutlu ve dürüstçe,ben varımDaha mutlu çünkü daha az sürtünme var. Sadece Docker hakkında değil; bu küçük ayrıntıları nasıl yönetmek tüm geliştirme ve dağıtım iş akışımı yumuşatmıştır. kesinlikle hayatımın bir parçası haline geldi, ya da en azından dijital hayatım.