Bağlantı Noktalarını Ortaya Çıkarmak için Dockerfile Kullanma

Using Dockerfile Expose Ports



Kullanarak mevcut Docker görüntülerinden özel bir Docker görüntüsü oluşturmak gerçekten çok kolay. docker dosyası . Genellikle insanlar aşağıdaki gibi minimal bir temel görüntü kullanır: alp veya ubuntu/debian bu amaçla. Diyelim ki, favori web uygulamanızın NodeJS ile yazılmış özel bir Docker görüntüsünü oluşturmak istiyorsunuz. Uygulama bağlantı noktasında çalışacak 8080 . Varsayılan olarak, bağlantı noktasındaki web uygulamasına erişemezsiniz. 8080 ana makinenizden. Bağlantı noktasını açığa çıkarmak veya açmak istediğinizi Docker'a söylemeniz gerekecek. 8080 ana makinenizden erişebilmek için.

Bu yazıda size portları nasıl açığa çıkaracağınızı göstereceğim. docker dosyası gerçek bir dünya örneği ile. Başlayalım.







Öncelikle bir proje dizini oluşturmalıyız. Bu dizinde, tüm proje dosyalarını ve bir docker dosyası .



Bir proje dizini oluşturmak için aşağıdaki komutu çalıştırın uygulamam/ kullanıcılarınızın HOME dizininde ve ona gidin:



$mkdir~/uygulamam&& CD~/uygulamam

Web Uygulamasını Hazırlama:

Şimdi bir dizin oluşturun kaynak/ içinde ~/uygulamam/ aşağıdaki komutla dizin:

$mkdirkaynak

İçinde kaynak/ dizinde, NodeJS uygulamamın tüm kaynak kodu tutulacak.

sadece basit bir tane oluşturacağım app.js dosya kaynak/ dizin ve bağlantı noktasında basit bir web sunucusu çalıştırın 8080 sadece gösteri için.

NS kaynak/app.js dosya aşağıdaki kod satırlarını içerir:

Dockerfile Yazma ve Portları Gösterme:

Şimdi bir oluştur docker dosyası içinde ~/uygulamam aşağıdaki komutla dizin:

$dokunmadocker dosyası

Şimdi aşağıdaki satırları yazın docker dosyası ve kaydedin. Bu satırların ne anlama geldiğini daha sonra tartışacağım.

Buraya, Alp'ten:3.8 anlamına gelir, kullanın alp:3.8 Bundan oluşturacağımız yeni görüntünün temeli olarak Docker görüntüsü docker dosyası .

RUN apk güncellemesi demek, çalıştırmak apk güncellemesi temel Docker görüntüsündeki komut alp:3.8 .

RUN apk -no-cache nodejs ekleyin demek, çalıştırmak apk ekle içine NodeJS programlama dilini kurma komutu alp:3.8 Docker temel görüntüsü.

KOPYALA ./src /app şu anlama gelir, tüm dosyaları ~/myapp/src dizine /uygulama kullanarak oluşturacağımız yeni Docker görüntüsünün dizini docker dosyası .

CMD [/usr/bin/node, /app/app.js] demek, çalıştırmak /app/app.js kullanarak yeni kapsayıcıdan dosya düğüm içinde bulunan ikili /usr/bin/düğüm .

Son olarak, MARUZ KALMA 8080/tcp TCP bağlantı noktasını açığa çıkarmak veya açmak anlamına gelir 8080 ana bilgisayara.

Dockerfile Kullanarak Özel Docker Görüntüsü Oluşturma:

Şimdi özel bir Docker görüntüsü yapalım alp düğümü:v1 kullanmak docker dosyası sadece yarattığımız.

İlk önce içinde olduğunuzdan emin olun ~/uygulamam/ dizini ve ardından özel Docker imajınızı oluşturmak için aşağıdaki komutu çalıştırın. alp düğümü:v1 :

$liman işçisi inşa-Talp düğümü:v1 .

Gördüğünüz gibi, özel Docker görüntüsü alp düğümü:v1 oluşturuluyor. Gerekli temel Docker görüntüsü ve paketleri internetten çekiliyor.

Gördüğünüz gibi, özel Docker görüntüsü alp düğümü:v1 başarıyla oluşturulur.

Özel Docker Görüntüsünü Test Etme:

Artık özel Docker imajını test edebiliriz. alp düğümü:v1 çok kolayca. Tek yapmamız gereken bir kapsayıcı oluşturmak. alp düğümü:v1 görüntü.

Docker kapsayıcısı oluşturmak için aşağıdaki komutu çalıştırın www itibaren alp düğümü:v1 Docker resmi:

$liman işçisi koşusu-NS -o --isimwww alp düğümü:v1

konteyner www yaratıldı.

Şimdi IP adresini öğrenelim. www Aşağıdaki komutla Docker kapsayıcı:

$liman işçisi www teftiş| kavramakAdres

Gördüğünüz gibi, benim durumumda IP adresi 172.17.0.3 . Bu yüzden yazdığım NodeJS uygulamasına bağlantı noktasındaki web tarayıcısından erişilebilir olmalıdır. 8080 bu IP adresinden.

İşte! limana erişebilirim 8080 benim www Docker konteyneri.

Temel olarak, kullanarak oluşturacağınız özel Docker görüntülerinizdeki belirli bağlantı noktalarını bu şekilde ortaya çıkarırsınız. docker dosyası .

Dockerfile Kullanarak TCP ve UDP Bağlantı Noktalarını Gösterme:

Bu makalenin önceki bölümünde, bir TCP bağlantı noktası kullanarak bir TCP bağlantı noktasını nasıl açığa çıkaracağınızı gösterdim. docker dosyası .

Bir TCP bağlantı noktasını kolayca açığa çıkarabilirsiniz (diyelim ki TCP bağlantı noktası 53 ) senin içinde docker dosyası aşağıdaki satırla:

ORTAYA ÇIKARMAK53/tcp

Ayrıca bir UDP bağlantı noktasını açığa çıkarabilirsiniz (Diyelim ki UDP bağlantı noktası 53 ) aşağıdaki satırda docker dosyası :

ORTAYA ÇIKARMAK53/udp

Aşağıdaki satırlar ile TCP ve UDP portunu aynı anda açığa çıkarabilirsiniz. docker dosyası :

ORTAYA ÇIKARMAK53/tcp
ORTAYA ÇIKARMAK53/udp

Hangi protokolün (TCP veya UDP) kullanılacağını belirtmezseniz, varsayılan olarak TCP kullanılır. Örneğin, aşağıdaki satırı dosyanıza yazarsanız docker dosyası :

ORTAYA ÇIKARMAK53

Ardından Docker, 53 numaralı TCP bağlantı noktasını kullanmak istediğinizi varsayacaktır.

Dockerfile Kullanarak Birden Çok Bağlantı Noktasını Gösterme:

Özel bir MEAN yığını Docker görüntüsü oluşturmak istediğinizi varsayalım. Bu durumda, bazı portlarda bir HTTP sunucusu çalıştıracaksınız (Diyelim ki 80 veya 8080 numaralı TCP bağlantı noktası), 21 numaralı TCP bağlantı noktasında çalışan bir FTP sunucusu, 3306 numaralı TCP bağlantı noktasında çalışan bir SQL veritabanı sunucusu (diyelim MySQL), veya TCP bağlantı noktası 27017 veya 27018'de çalışan NoSQL veritabanı sunucusu (diyelim ki MongoDB), TCP bağlantı noktası 22'de çalışan bir SSH sunucusu. Bu çok sayıda bağlantı noktası demektir!

İyi haber ise; kullanılarak oluşturulan özel Docker görüntünüzde gerektiği kadar bağlantı noktası gösterebilirsiniz. docker dosyası .

Yukarıdaki örnekteki bağlantı noktaları, aşağıdaki satırlarla gösterilebilir: docker dosyası :

ORTAYA ÇIKARMAK80/tcp
ORTAYA ÇIKARMAK8080/tcp
ORTAYA ÇIKARMAKyirmi bir/tcp
ORTAYA ÇIKARMAK22/tcp
ORTAYA ÇIKARMAK3306/tcp
ORTAYA ÇIKARMAK27017/tcp
ORTAYA ÇIKARMAK27018/tcp

İsterseniz, Docker varsayılan olarak TCP kullandığı için protokol spesifikasyonunu bırakabilir ve aynı şeyi aşağıdaki satırlarla yapabilirsiniz. docker dosyası :

ORTAYA ÇIKARMAK80
ORTAYA ÇIKARMAK8080
ORTAYA ÇIKARMAKyirmi bir
ORTAYA ÇIKARMAK22
ORTAYA ÇIKARMAK3306
ORTAYA ÇIKARMAK27017
ORTAYA ÇIKARMAK27018

Gerekirse, TCP ve UDP bağlantı noktalarını cihazınızda karıştırabilirsiniz. docker dosyası . Örneğin, DNS sunucusunu (UDP 53 numaralı bağlantı noktasında çalışır) çalıştırırsanız, yukarıdaki örnekle birlikte aşağıdaki satırları sunucunuza eklersiniz. docker dosyası .

ORTAYA ÇIKARMAK80
ORTAYA ÇIKARMAK8080
ORTAYA ÇIKARMAKyirmi bir
ORTAYA ÇIKARMAK22
ORTAYA ÇIKARMAK53/udp
ORTAYA ÇIKARMAK3306
ORTAYA ÇIKARMAK27017
ORTAYA ÇIKARMAK27018

Böylece, kullanarak bağlantı noktalarını ortaya çıkarırsınız. docker dosyası . Hakkında daha fazla öğrenmek için docker dosyası ve kullanarak bağlantı noktalarını açığa çıkarmak docker dosyası , okumak docker dosyası referans kılavuzu https://docs.docker.com/engine/reference/builder/#expose

Bu makaleyi okuduğunuz için teşekkürler.