Docker'da Bağlantı Noktası Nasıl İletilir

Docker Da Baglanti Noktasi Nasil Iletilir



Docker, uygulamaları ve yazılımları konteyner olarak bilinen izole bir ortamda dockerize eden, sevilen bir dockerizasyon platformudur. Uygulamaları konteynerlerde çalıştırırken, kullanıcıların genellikle konteynerin dışındaki konteynerli uygulamaya erişmeleri gerekir. Bu amaçla kullanıcıların port yönlendirme tekniğini uygulaması gerekmektedir.

Docker'da port yönlendirme, konteyner portunu Docker host sistemi üzerinde açığa çıkarmamızı sağlayan bir işlemdir. Uygulamayı yalıtılmış bir ortamda çalıştırmamıza ve aynı zamanda bir kullanıcı makinesindeki konteynerin dışından erişilebilir hale getirmemize olanak tanır.

Bu gönderi şunları gösterecektir:







Docker'da Bağlantı Noktasını “-p” veya “–publish” Etiketi Kullanarak İletme

Docker'da bir bağlantı noktasını iletmek için kullanıcının konteyner bağlantı noktasını Docker ana bilgisayarında yayınlaması gerekir. Bu amaçla, konteyneri docker ana bilgisayarında “” komutunu kullanarak çalıştırın. -P ' veya ' -Yayınla “ etiketinin içinde liman işçisi koşusu ' emretmek.



Doğru gösterim için aşağıdaki talimatları izleyin.



Adım 1: Dockerfile'ı oluşturun

Öncelikle bir dosya oluşturun ve adını “” olarak ayarlayın. Docker dosyası ”. Bu dosya, Docker konteynerinin şablonunu oluşturmaya yönelik metinsel talimatları içerir. Örneğin, basit Golang programını Dockerfile'da aşağıdaki snippet'i kullanarak dockerize edelim:





golang'dan: 1.8

İŞ YÖNÜ / Gitmek / kaynak / uygulama

main2.go'yu KOPYALAYIN.

KOŞ git inşa et Web sunucusu .

ORTAYA ÇIKARMAK 8080

CMD [ './Web sunucusu' ]

Verilen pasajda:

  • İTİBAREN Temel görüntüyü ayarlamak için ” komutu kullanılır.
  • İŞ YÖNÜ ” konteynerin çalışma dizinini tanımlar.
  • KOPYALA ” komutu, program dosyasının bir kopyasını kapsayıcı tarafından belirtilen yolda oluşturacaktır.
  • KOŞMAK ” komutu kapta belirtilen komutu çalıştıracaktır.
  • ORTAYA ÇIKARMAK ” komutu konteynerin dinleneceği portu belirtir.
  • CMD ” konteynerin çalıştırılabilir noktalarını belirtir.

Adım 2: Bir Golang Programı Oluşturun

Daha sonra “adlı başka bir dosya oluşturun. main2.go ”ve aşağıda verilen ve basit bir dize yazdıran Golang programını” bağlantı noktasına yapıştırın. 8080 ”:



ana paket

içe aktarmak (

'fmt'

'kayıt'

'net/http'

)

işlev işleyicisi ( İçinde http.ResponseWriter, r * http.İstek ) {

HTML := '

DOCTYPE HTML'si >

< HTML >

< KAFA >

< başlık > Merhaba Golang ! başlık >

< stil >

vücut {

arka plan rengi: #D2B48C;

}

.konteyner {

metin hizalama: ortala;

dolgu: 50 piksel;

}

stil >

KAFA >

< vücut >

< div sınıf = 'konteyner' >

< h1 > Merhaba ! LinuxHint Eğitimine Hoş Geldiniz h1 >

div >

vücut >

HTML >`

w.Başlık ( ) .Ayarlamak ( 'İçerik türü' , 'metin/html' )

fmt.Fprint ( İçinde html )

}

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: Container'ın Anlık Görüntüsünü Oluşturun

Şimdi yukarıda belirtilen Docker dosyasından konteyner için bir anlık görüntü oluşturun. Bunun için öncelikle “” komutunu kullanarak Dockerfile’ın oluşturulduğu dizine gidin. cd <çalışma-direngi-yolu> ' emretmek:

Daha sonra verilen komutu kullanarak yeni kapsayıcı görüntüsünü oluşturun:

Liman işçisi yapısı -T golang-img.

Verilen sonuç, görüntünün sağlanan yapı bağlamına göre oluşturulduğunu gösterir.

Adım 4: Ana Bilgisayar Bağlantı Noktasını Konteyner Limanına İletin

Şimdi, yerel bir makinede konteynerin dışındaki dockerize uygulamasına erişmek için konteyneri çalıştırın ve ana bilgisayar portunu konteyner portuna iletin. Bu amaçla çalıştırın “docker run –name -p : ' emretmek:

liman işçisi koşusu --isim devam etmek -P 8080 : 8080 golang-img

Burada, “ -P ” bayrağı, konteyner çalıştırma bağlantı noktasını liman işçisi ana bilgisayarında yayınlamak için kullanılır:

Adım 5: Doğrulama

Doğrulama için, çalışan kapsayıcıları şunu kullanarak görüntüleyin: ' Liman işçisi PS ”:

liman işçisi not

Aşağıdaki sonuçta konteynerli uygulama mevcut ağ arayüzlerini dinliyor “ 0.0.0.0 'yayınlanan bağlantı noktasında' 8080 ”. Bu, bağlantı noktasının ana makinede çalışan uygulamaya iletildiği anlamına gelir:

Şimdi tarayıcıyı başlatın ve şuraya gidin: ' http://localhost:8080/ ” ve port yönlendirme tekniğinin uygulanıp uygulanmadığını ve konteynerli uygulamaya ana sistemdeki konteyner dışından erişilip erişilemediğini doğrulayın:

Burada host portunu başarılı bir şekilde konteyner portuna ilettik ve uygulamaya docker host üzerinden erişilebiliyor.

Docker Compose Kullanarak Docker'da Bağlantı Noktası Nasıl İletilir

Konteynerli uygulamaya konteynerin dışından erişmek amacıyla konteyner portunu ana bilgisayara iletmek için kullanıcı “ liman Yaml dosyasını oluşturmada ” tuşuna basın. Docker compose, farklı hizmetleri ve uygulamaları farklı konteynerlerde çalıştırmamızı sağlayan bir Docker hizmetidir. Kullanmak ' docker-compose.yml ” dosyasıyla kullanıcı ayrıca konteyner portunu ana makineye iletebilir ve dış dünyayla uygulama bağlantısı kurabilir.

Çizimler için aşağıdaki prosedüre göz atın.

1. Adım: Dosya Oluşturun

Öncelikle “adlı bir dosya oluşturun. docker-compose.yml ” dosyasını açın ve aşağıdaki içeriği dosyaya ekleyin:

sürüm: '3'

Hizmetler:

ağ:

inşa etmek: .

bağlantı noktaları:

- 8080 : 8080

Yukarıdaki parçada, ' limanlar ” tuşu ana bilgisayarı konteyner portuna bağlamak için kullanılır. Burada ilk değer host portu, ikinci değer ise konteyner portudur.

2. Adım: Uygulamayı Başlatın

Oluşturma dosyasındaki talimatları belirledikten sonra uygulamayı “ liman işçisi oluşturma ' emretmek:

liman işçisi oluşturma

3. Adım: Doğrulama

Doğrulama için, '' seçeneğini kullanarak oluşturma kapsayıcılarını listeleyin. liman işçisi-oluşturma ps ' emretmek:

liman işçisi oluşturma not -A

Konteynerin ana makinede erişilebilir olup olmadığını kontrol etmek için “ http://localhost:8080/ ” URL'si. Burada konteyner portunu ana makineye etkili bir şekilde ilettiğimizi görebilirsiniz:

Bağlantı Noktasını Belirli Ağa Yönlendirme

Bir konteyner portunu belirli bir ağa iletmek için kullanıcının konteynere erişmek istediği ağı “” kullanarak belirtmesi gerekir. -ağ ' seçenek. Gösterim için verilen adımlara bakın.

1. Adım: Bir Ağ Oluşturun

“” seçeneğini kullanarak yeni bir ağ oluşturun. liman işçisi ağı oluştur ' emretmek. Varsayılan olarak bu ağ bir köprü sürücüsü kullanacaktır:

liman işçisi ağı mygo-ağımı oluştur

Docker ağlarını görüntülemek için “ Liman işçisi ağı ls ' emretmek:

liman işçisi ağı ls

Burada başarıyla oluşturduk “ mygo-ağım ' bu ' kullanıyor köprü ” sürücü:

Adım 2: Harita Ağı

Bağlantı noktası yönlendirme tekniğini kullanarak belirli bir ağdaki kapsayıcıyı çalıştırmak ve erişmek için aşağıdaki komutu kullanın:

liman işçisi koşusu -P 8080 : 8080 --ağ mygo-ağım golang-img

Verilen komutta “ -P ” seçeneği, kapsayıcıyı belirtilen ağın belirtilen bir bağlantı noktasında yayınlar. Burada, “ -ağ Docker ağını tanımlamak için ” seçeneği kullanılır:

Doğrulama için tekrar “ http://localhost:8080 ” bağlantı noktasını açın ve konteynerin belirtilen ağda erişilebilir olup olmadığını kontrol edin:

Yukarıdaki çıktı, konteyner portunu belirli bir ağ üzerinde etkili bir şekilde ilettiğimizi gösterir.

Not: “Ana bilgisayar” ağını kullanırken, kullanıcının “konteynerden ana bilgisayara” bağlantı noktasını kullanarak yayınlamasına gerek yoktur. -P ' veya ' -Yayınla ' seçenek.

Docker Compose'u Kullanarak Bağlantı Noktasını Belirli Ağa İletme

Aşağıdaki pasajı '' içine ekleyin docker-compose.yml ' dosya. Aşağıdaki parçada, “ ağlar ” tuşu ağı belirtmek için kullanılır:

sürüm: '3'
Hizmetler:

ağ:
inşa etmek: .
bağlantı noktaları:
- 8080 : 8080

Şimdi uygulamayı “” kullanarak bir kapta başlatın. liman işçisi oluşturma ' emretmek:

liman işçisi oluşturma

Docker'da port yönlendirme yöntemlerini ele aldık.

Çözüm

Dockerize uygulamasına konteynerin dışından erişmek amacıyla Docker'daki bağlantı noktasını iletmek için kullanıcı ' -P ' veya ' -Yayınla ' seçeneğindeki ' liman işçisi koşusu ” komutunu kullanabilir veya kullanıcı “ limanlar Docker oluşturma dosyasında ” tuşuna basın. Belirli bir ağdaki konteynere erişmek için kullanıcı, bir ağdaki konteyner portunu “ –ağ ' seçenek. Bu blog Docker'daki bağlantı noktalarını iletme tekniklerini gösterdi.