Docker, yazılım geliştirme dünyasında devrim niteliğinde bir araç. Ancak, Docker'ın gücünden tam anlamıyla faydalanabilmek için bazı ince ayarları bilmek gerekiyor. Gelin, Docker ile çalışırken size zaman kazandıracak ve projelerinizi daha verimli hale getirecek 10 sıradışı konfigürasyon hilesine göz atalım.
1. Docker Volumes ile Verilerinizi Güvende Tutun
Docker container'ları geçici olduğundan, tüm verileriniz container'lar kapandığında kaybolabilir. Ancak Docker volumes kullanarak bu verileri güvenli bir şekilde saklayabilirsiniz. Bu sayede veritabanları veya kullanıcı dosyalarınız kaybolmaz. Volumes’ları kolayca oluşturabilir ve yönetebilirsiniz.
docker volume create my_volume
docker run -d -v my_volume:/data my_image
```
2. Docker’ın Build Cache Özelliklerini Kullanın
Docker build işlemleri bazen uzun sürebilir. Ancak build cache kullanarak daha önce oluşturduğunuz katmanları yeniden kullanabilirsiniz. Bu, özellikle sık sık değişmeyen bağımlılıklar için zaman kazandırır.
docker build --cache-from my_image .
```
3. Multi-stage Build ile Docker Image'larınızı Küçültün
Docker image’larınız büyüdükçe, depolama alanı sıkıntısı çekebilirsiniz. Multi-stage build yöntemi ile yalnızca gerekli olan dosyaları son imajınıza ekleyebilirsiniz, böylece gereksiz dosyalardan kurtulabilirsiniz.
FROM node:14 AS build
WORKDIR /app
COPY . .
RUN npm install
RUN npm run build
FROM node:14-slim
WORKDIR /app
COPY --from=build /app/build .
CMD ["npm", "start"]
```
4. Docker Compose ile Hizmetlerinizi Kolayca Yönetin
Eğer birden fazla container’ı aynı anda çalıştırmanız gerekiyorsa, Docker Compose kullanarak tüm hizmetlerinizi tek bir dosyada tanımlayabilir ve hepsini kolayca yönetebilirsiniz.
version: "3"
services:
web:
image: my_image
ports:
- "80:80"
db:
image: postgres
environment:
POSTGRES_PASSWORD: example
```
5. Docker Logs ile Hataları Kolayca Takip Edin
Docker container'larınızda hata ayıklamak zor olabilir. Ancak docker logs komutunu kullanarak container loglarına kolayca erişebilir ve hata kaydını kontrol edebilirsiniz.
docker logs my_container
```
6. Network’leri Özelleştirerek İzolasyon Sağlayın
Docker, container'lar arasında iletişimi varsayılan olarak sağlar. Ancak Docker network kullanarak, container'larınızı izole edebilir ve güvenliği artırabilirsiniz.
docker network create my_network
docker run --network my_network my_image
```
7. Docker Container’ınızı Otomatik Olarak Yeniden Başlatın
Container’ınız bir sebepten dolayı kapanırsa, her seferinde manuel müdahale etmek yerine restart policy kullanarak otomatik olarak yeniden başlatılmasını sağlayabilirsiniz.
docker run --restart always my_image
```
8. Docker Secrets ile Güvenli Şifre Yönetimi
Docker Secrets, şifrelerinizi ve gizli bilgilerinizi güvenli bir şekilde yönetmenizi sağlar. Docker swarm kullanıyorsanız, bu özelliği kullanarak şifrelerinizi güvenli bir ortamda tutabilirsiniz.
docker secret create my_secret ./secret.txt
```
9. Docker Stats ile Kaynak Kullanımını İzleyin
Docker container’larınızın kaynak kullanımını takip etmek önemlidir. docker stats komutunu kullanarak container’larınızın CPU, bellek ve ağ kullanımını gerçek zamanlı olarak izleyebilirsiniz.
docker stats
```
10. Health Checks ile Container Sağlık Durumunu İzleyin
Container’larınızın sağlıklı olup olmadığını kontrol etmek için health check özelliğini kullanabilirsiniz. Bu özellik, container’larınızın durumunu izleyerek, herhangi bir problemde sizi uyarır.
HEALTHCHECK CMD curl --fail http://localhost:8080/health || exit 1
```