Sobes.tech
Junior

Bir imaj nasıl oluşturulur ve kayda nasıl yüklenir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Docker imajı oluşturma, docker build komutu ile yapılır ve bu komut Dockerfile'ı talimat olarak kullanır. Dockerfile, temel imaj, dosya kopyalama, bağımlılıkların kurulması ve ortamın yapılandırılması gibi adımları içerir.

Örnek Dockerfile:

# Temel imajı kullan
FROM ubuntu:latest

# Bağımlılıkları yükle
RUN apt-get update && apt-get install -y nginx

# Konfigürasyon dosyalarını kopyala
COPY nginx.conf /etc/nginx/nginx.conf

# Portu aç
EXPOSE 80

# Web sunucusunu başlat
CMD ["nginx", "-g", "daemon off;"]

İmaj oluşturma komutu:

# docker build -t <imaj_adi>:<etiket> <Dockerfile_yolu>
docker build -t my-nginx-image:latest .

-t my-nginx-image:latest imajın adını my-nginx-image ve etiketi latest olarak atar. . ise Dockerfile'ın bulunduğu mevcut dizini gösterir.

Başarılı bir derlemeden sonra, imaj yerel olarak kullanılabilir hale gelir. Bunu bir kayıt defterine (örneğin Docker Hub veya özel bir kayıt defteri) kaydetmek için önce docker login komutuyla giriş yapılmalıdır.

# docker login <kayıt_defteri_adresi>
# Docker Hub için adres belirtilmez
docker login

Daha sonra, imajı kayıt defteri adresine uygun şekilde yeniden etiketlemek gerekir:

# docker tag <yerel_ad>:<etiket> <kayıt_defteri_adresi>/<depo_adi>:<etiket>
# Docker Hub için, kullanıcı 'myuser' ise
docker tag my-nginx-image:latest myuser/my-nginx-image:latest

Ve son olarak, imajı kayıt defterine push etmek:

# docker push <kayıt_defteri_adresi>/<depo_adi>:<etiket>
# Docker Hub için
docker push myuser/my-nginx-image:latest

İmaj oluşturma ve push etme süreci, genellikle CI/CD sistemleri (Jenkins, GitLab CI, GitHub Actions vb.) ile otomatikleştirilir.