Docker kapsayıcıları, Docker görüntüsünü kullanarak programı, yapılandırma ayarlarını ve bağımlılıkları paketleyen Docker platformunun temel bileşenlerinden biridir. Docker görüntüsü, bir uygulamanın nasıl kapsayıcıya alınacağı konusunda kapsayıcıya rehberlik eden basit bir kapsayıcı şablonu veya anlık görüntüsüdür. Bu görüntüler çoğunlukla resmi Docker hub kayıt defterinde bulunur. Kullanıcılar bu görselleri Dockerfile kullanarak proje gereksinimlerine göre de tasarlayabilirler.
Bu blog şunları açıklayacaktır:
- Docker dosyası nedir?
- Dockerfile'ın Temel Komutları
- Docker'da Dockerfile'dan Örnek Nasıl Çalıştırılır?
- Docker Compose'da Docker dosyasından Örnek Nasıl Çalıştırılır?
- Çözüm
Docker dosyası nedir?
Docker dosyası, Docker konteynerinin temel yapısını tanımlayan komutları ve talimatları içeren normal bir metin dosyasıdır. Bu talimatlar terminalde herhangi bir dosya olmadan yürütülebilir ancak her komutun birbiri ardına çalıştırılması yoğun ve karmaşık bir iştir. Dockerfile, geliştiricilerin tüm gereksinimleri ve talimatları tek bir dosyada belirtmesini kolaylaştırır. Bu dosya daha sonra Docker görüntüsü olan konteyner şablonunu oluşturmak için kullanılacaktır. Bundan sonra, örneği Docker kapsayıcısında başlatmak için docker görüntüsü yürütülür.
Dockerfile'ın Temel Komutları
Container'ın temel anlık görüntüsünü tanımlamak için kullanılan Dockerfile'ın bazı temel komutları aşağıda tablo halinde listelenmiştir:
Komutlar | Tanım |
İTİBAREN | “ İTİBAREN Container şablonunun temel görüntüsünü tanımlamak için ” komutu kullanılır. Bu görüntüler resmi Docker kayıt defteri Docker Hub'dan alınmıştır. |
BAKIMCI | “ BAKIMCI ” komutu, Docker imajını oluşturan yazar (Ad ve E-posta) bilgilerini tanımlar. |
İŞ YÖNÜ | Container mimarisine alınmış bir uygulamanın çalışma dizinini belirtir. |
KOPYALA | Kaynak ve yapılandırma dosyalarını ana bilgisayar sisteminden Docker konteynerinin belirtilen yoluna kopyalamak için kullanılır. |
EKLEMEK | “ EKLEMEK ' komutu ' komutuna benzer KOPYALA ” komutunu kullanır, ancak aynı zamanda dosyayı URL'den GitHub deposundan konteyner yoluna gibi konteyner yoluna eklemek için uzak URL'yi de destekler. |
KOŞMAK | “ KOŞMAK ” komutları kapta çalıştırmak için kullanılır. Dockerfile'da çoğunlukla konteyner içindeki ekstra bağımlılıkları yönetmek ve kurmak için kullanılır. |
CMD | “ CMD ” Docker konteynerlerinin varsayılan noktalarını tanımlar. Temel olarak “çalıştırılabilir dosyaları ve varsayılan parametreleri” tanımlar. GİRİŞ NOKTASI ”. |
GİRİŞ NOKTASI | “ GİRİŞ NOKTASI ” komutu aynı zamanda Docker konteynerinin çalıştırılabilir dosyalarını ayarlamak için de kullanılır. Temel olarak her zaman bir kapta kullanılan varsayılan uygulamaları ayarlar. ENTRYPOINT komutu Docker dosyasında da bir kez kullanılır. |
KULLANICI | Bu komut, Container'daki komutları yürütmek üzere UID'yi (kullanıcı adı) ayarlamak için kullanılır |
HACİM | “ HACİM ” komutu, harici birimi (dosya sistemi) bir konteynere bağlamak veya monte etmek için kullanılır. |
ENV | “ ENV ” komutu, konteynerin ortam değişkenlerini ayarlamak için kullanılır. |
ARG | “ ARG ”, kabın içindeki argümanları iletmek için kullanılır. |
ORTAYA ÇIKARMAK | “ ORTAYA ÇIKARMAK ” komutu, konteynerin yürütüleceği açık bağlantı noktalarını belirtir. |
İNŞAATTA | Temel görüntüdeki talimatları okur ancak bu talimatları aşağı akış görüntüsü aracılığıyla tetikler. |
ETİKET | “ ETİKET ”, konteyner anlık görüntüsünün meta verilerini belirtmek için kullanılır. |
Docker'daki bir Docker dosyasından Docker Örneği Nasıl Çalıştırılır?
Dockerfile kullanarak bir Docker örneğini veya kapsayıcısını çalıştırmak için önce bir Dockerfile oluşturun. Ardından Dockerfile'ı kullanarak konteynerin temel anlık görüntüsünü oluşturun. Bundan sonra Docker örneğini başlatmak için anlık görüntüyü çalıştırın.
Gösterim için aşağıdaki talimatları izleyin.
Adım 1: Docker dosyası oluşturun
İlk önce bir Docker dosyası oluşturun. Dockerfile'ın herhangi bir dosya uzantısına sahip olmadığını unutmayın. Bundan sonra aşağıdaki komutları dosyaya yapıştırın:
golang'dan: 1.8
İŞ YÖNÜ / Gitmek / kaynak / uygulama
main.go'yu KOPYALAYIN.
KOŞ git inşa et -Ö Web sunucusu .
ORTAYA ÇIKARMAK 8080 : 8080
GİRİŞ NOKTASI [ './Web sunucusu' ]
Adım 2: Program Dosyasını Oluşturun
Daha sonra “adlı yeni bir dosya oluşturun. ana.go ” basit Golang programını içerir. Bu amaçla aşağıdaki programı dosyaya yapıştırın:
ana paketiçe aktarmak (
'fmt'
'kayıt'
'net/http'
)
işlev işleyicisi ( İçinde http.ResponseWriter, r * http.İstek ) {
fmt.Fprintf ( İçinde , 'Merhaba! LinuxHint Eğitimine Hoş Geldiniz' )
}
ana işlev ( ) {
http.HandleFunc ( '/' , işleyici )
günlük.Ölümcül ( http.ListenAndServe ( '0.0.0.0:8080' , sıfır ) )
}
3. Adım: Kapsayıcı Anlık Görüntüsü Oluşturun
Şimdi konteynerin Docker anlık görüntüsünü “” kullanarak oluşturun. docker build -t
Yukarıdaki komutta “ -T ” seçeneği görselin adını veya etiketini ayarlar, “ -F ” seçeneği, Docker motorunun derleme bağlamını okuması gereken Docker dosyasının yolunu belirtir:
Görüntünün başarıyla oluşturulup oluşturulmadığını kontrol etmek için “ liman işçisi görüntüleri
Çıktı, konteynerin anlık görüntüsünü Dockerfile'dan başarıyla oluşturduğumuzu gösteriyor:
Adım 4: Konteyneri Çalıştırmak için Anlık Görüntüyü Çalıştırın
Şimdi, yukarıdaki adımda oluşturulan konteynerin anlık görüntüsünü çalıştırarak Docker konteynerinde Docker örneğini başlatın:
liman işçisi koşusu -P 8080 : 8080 --isim devam etmek -D go-imgYukarıdaki komutta “ -P ” seçeneği kapsayıcıyı “ üzerinde çalıştırır 8080 ' liman, ' -isim ” kapsayıcının adını ve “ -D ” seçeneği, kabı bağımsız modda çalıştırır (arka plan hizmeti):
Kapsayıcının yürütülüp yürütülmediğini doğrulamak için 'çalışan kapları' kullanarak listeleyin. Liman işçisi PS ' emretmek:
liman işçisi not
Şimdi şuraya gidin: http://localhost:8080 ”ve uygulamanın açık bağlantı noktasında çalışıp çalışmadığını doğrulayın:
Yukarıdaki çıktı, Docker örneğini Dockerfile kullanarak etkili bir şekilde başlattığımızı gösterir.
Docker Compose'da Docker dosyasından Örnek Nasıl Çalıştırılır?
Docker compose, Docker platformunun farklı konteynerlerde birden fazla örneği aynı anda çalıştırmamızı sağlayan bir diğer önemli eklentisidir. Kullanıcılar ayrıca Docker compose eklentisini kullanarak Docker örneğini Dockerfile'dan çalıştırabilir. Örnek olarak verilen adımları izleyin.
1. Adım: Dockerfile oluşturun
İlk önce bir Docker dosyası oluşturun. Örneğin, yukarıdaki bölümde kullanılan Dockerfile ve program dosyasının aynısını kullanıyoruz:
golang'dan: 1.8İŞ YÖNÜ / Gitmek / kaynak / uygulama
main.go'yu KOPYALAYIN.
KOŞ git inşa et -Ö Web sunucusu .
ORTAYA ÇIKARMAK 8080 : 8080
GİRİŞ NOKTASI [ './Web sunucusu' ]
Adım 2: docker-compose.yml Dosyasını Oluşturun
Ardından, bir ' docker-compose.yml ” dosyasını açın ve aşağıdaki anahtar çiftlerini dosyaya kopyalayın:
sürüm: '3'Hizmetler:
ağ:
inşa etmek: .
bağlantı noktaları:
- 8080 : 8080
Yukarıda belirtilen alıntıda:
- “ Hizmetler Ayrı bir kapta yürütülecek oluşturma hizmetlerini belirtmek için kullanılır. Örnek olarak yalnızca bir hizmeti yapılandırdık “ ağ ”Kodu temiz ve basit tutmak için.
- “ inşa etmek ” anahtar çifti, derleme içeriğini Dockerfile'dan okumak için kullanılır. Burada docker, Dockerfile'daki talimatları okuyacak ve konteyneri buna göre oluşturacaktır.
- “ limanlar ” tuşu, konteynerin yürütüleceği açık bağlantı noktalarını tanımlar.
3. Adım: Docker Örneğini Başlatın
Şimdi Docker örneğini “ liman işçisi oluşturma ' emretmek:
liman işçisi oluşturma -D
Doğrulama için, '' komutunu kullanarak çalışan oluşturma kapsayıcılarının listesini kontrol edin. liman işçisi-oluşturma ps ' emretmek:
liman işçisi oluşturma notÇıktı şunu gösteriyor: “ ağ 'hizmet' konumunda başarıyla yürütülüyor golangapp-web-1 ” konteyner:
Oluşturma hizmetinin açık bağlantı noktasına gidin ve programın yürütülüp yürütülmediğini doğrulayın. Aşağıdaki sonuç, Docker örneğini Dockerfile'dan Docker compose kullanarak başarıyla başlattığımızı gösterir:
Bunların hepsi Docker dosyasından docker örneğini çalıştırmakla ilgilidir.
Çözüm
Bir Docker örneğini Dockerfile'dan bir kapsayıcıda yürütmek için önce Dockerfile'ı oluşturun. Docker kapsayıcısının görüntüsünü veya şablonunu oluşturmak için dosyanın içine komutları ekleyin. Daha sonra “” seçeneğini kullanarak kapsayıcı görüntüsünü veya anlık görüntüsünü oluşturun. docker build -t