Menggunakan Dockerfile untuk Mengekspos Port

Using Dockerfile Expose Ports



Sangat mudah untuk membuat gambar Docker khusus dari gambar Docker yang ada menggunakan file docker . Biasanya orang menggunakan gambar dasar minimal seperti pegunungan Alpen atau ubuntu/debian untuk alasan tersebut. Katakanlah, Anda ingin membuat gambar Docker kustom dari aplikasi web favorit Anda yang ditulis dalam NodeJS. Aplikasi akan berjalan di port 8080 . Secara default, Anda tidak akan dapat mengakses aplikasi web di port 8080 dari mesin host Anda. Anda harus memberi tahu Docker bahwa Anda ingin mengekspos atau membuka port 8080 untuk dapat mengaksesnya dari mesin host Anda.

Pada artikel ini, saya akan menunjukkan cara mengekspos port menggunakan file docker dengan contoh dunia nyata. Mari kita mulai.







Pertama, kita harus membuat direktori proyek. Di direktori ini, Anda harus menyimpan semua file proyek dan a file docker .



Jalankan perintah berikut untuk membuat direktori proyek aplikasi saya/ di direktori HOME pengguna Anda dan navigasikan ke sana:



$mkdir~/aplikasi saya&& CD~/aplikasi saya

Menyiapkan Aplikasi Web:

Sekarang buat direktori src/ di dalam ~/aplikasiku/ direktori dengan perintah berikut:

$mkdirsrc

Dalam src/ direktori, semua kode sumber aplikasi NodeJS saya akan disimpan.

Saya hanya akan membuat yang sederhana app.js file di src/ direktori dan jalankan server web sederhana di port 8080 hanya untuk demonstrasi.

NS src/app.js file berisi baris kode berikut:

Menulis Dockerfile dan Mengekspos Port:

Sekarang buat file docker dalam ~/aplikasiku direktori dengan perintah berikut:

$menyentuhfile docker

Sekarang ketik baris berikut ke file docker dan simpan. Saya akan membahas apa arti garis-garis ini nanti.

Di Sini, DARI pegunungan: 3,8 artinya, gunakan pegunungan: 3.8 Gambar Docker sebagai dasar untuk gambar baru yang akan kita bangun dari ini file docker .

RUN apk pembaruan artinya, jalankan pembaruan apk perintah di gambar Docker dasar pegunungan: 3.8 .

RUN apk tambahkan –no-cache nodejs artinya, jalankan apk menambahkan perintah untuk menginstal bahasa pemrograman NodeJS di pegunungan: 3.8 Gambar dasar buruh pelabuhan.

SALIN ./src /app artinya, salin semua file dari ~/myapp/src direktori ke /aplikasi direktori image Docker baru yang akan kita buat menggunakan file docker .

CMD [/usr/bin/node, /app/app.js] artinya, jalankan /app/app.js file dari wadah baru menggunakan simpul biner terletak di /usr/bin/simpul .

Akhirnya, untuk EXPOSE 8080/tcp berarti, mengekspos atau membuka port TCP 8080 ke komputer tuan rumah.

Membuat Gambar Docker Kustom Menggunakan Dockerfile:

Sekarang mari kita buat gambar Docker khusus alpine-node:v1 menggunakan file docker yang baru saja kita buat.

Pertama, pastikan Anda berada di ~/aplikasiku/ direktori dan kemudian jalankan perintah berikut untuk membuat gambar Docker kustom Anda alpine-node:v1 :

$membangun buruh pelabuhan-Talpine-node:v1 .

Seperti yang Anda lihat, gambar Docker khusus alpine-node:v1 sedang dibuat. Gambar dan paket Docker dasar yang diperlukan sedang ditarik dari internet.

Seperti yang Anda lihat, gambar Docker khusus alpine-node:v1 berhasil dibuat.

Menguji Gambar Docker Kustom:

Sekarang kita dapat menguji gambar Docker khusus alpine-node:v1 sangat mudah. Yang harus kita lakukan adalah membuat wadah dari alpine-node:v1 gambar.

Jalankan perintah berikut untuk membuat wadah Docker www dari alpine-node:v1 Gambar buruh pelabuhan:

$buruh pelabuhan-D -dia --namawww alpine-node:v1

Wadah www dibuat.

Sekarang mari kita cari tahu alamat IP dari www Wadah buruh pelabuhan dengan perintah berikut:

$buruh pelabuhan memeriksa www| peganganAlamat

Seperti yang Anda lihat, dalam kasus saya, alamat IP-nya adalah 172.17.0.3 . Jadi aplikasi NodeJS yang saya tulis harus dapat diakses dari web browser di port 8080 dari alamat IP ini.

Voila! Saya dapat mengakses port 8080 dari saya www Wadah buruh pelabuhan.

Pada dasarnya itulah cara Anda mengekspos port tertentu dalam gambar Docker kustom Anda yang akan Anda buat menggunakan file docker .

Mengekspos Port TCP dan UDP Menggunakan Dockerfile:

Di bagian awal artikel ini, saya menunjukkan cara mengekspos port TCP menggunakan a file docker .

Anda dapat dengan mudah mengekspos port TCP (misalkan port TCP 53 ) di kamu file docker dengan baris berikut:

MEMBUKA53/tcp

Anda juga dapat mengekspos port UDP (Katakanlah port UDP 53 ) dengan baris berikut di file docker :

MEMBUKA53/udp

Anda dapat mengekspos port TCP dan UDP secara bersamaan dengan baris berikut di file docker :

MEMBUKA53/tcp
MEMBUKA53/udp

Jika Anda tidak menentukan protokol (TCP atau UDP) apa yang akan digunakan, TCP digunakan secara default. Misalnya, jika Anda menulis baris berikut di file docker :

MEMBUKA53

Kemudian Docker akan berasumsi bahwa Anda ingin menggunakan port TCP 53.

Mengekspos Beberapa Port Menggunakan Dockerfile:

Katakanlah Anda ingin membuat image Docker tumpukan MEAN kustom. Dalam hal ini, Anda akan menjalankan server HTTP pada beberapa port (misalkan TCP port 80 atau 8080), server FTP yang berjalan pada port TCP 21, server database SQL (misalkan MySQL) yang berjalan pada port TCP 3306, atau server database NoSQL (katakanlah MongoDB) yang berjalan pada port TCP 27017 atau 27018, server SSH yang berjalan pada port TCP 22. Itu banyak sekali port!

Kabar baiknya adalah; Anda dapat mengekspos port sebanyak yang diperlukan pada gambar Docker khusus Anda yang dibuat menggunakan file docker .

Port dalam contoh di atas dapat diekspos dengan baris berikut di . Anda file docker :

MEMBUKA80/tcp
MEMBUKA8080/tcp
MEMBUKAdua puluh satu/tcp
MEMBUKA22/tcp
MEMBUKA3306/tcp
MEMBUKA27017/tcp
MEMBUKA27018/tcp

Jika mau, Anda dapat meninggalkan spesifikasi protokol karena Docker menggunakan TCP secara default dan melakukan hal yang sama dengan baris berikut di file docker :

MEMBUKA80
MEMBUKA8080
MEMBUKAdua puluh satu
MEMBUKA22
MEMBUKA3306
MEMBUKA27017
MEMBUKA27018

Jika perlu, Anda dapat mencampur port TCP dan UDP di file docker . Misalnya, jika Anda menjalankan server DNS (yang berjalan pada port UDP 53), bersama dengan contoh di atas, Anda akan menambahkan baris berikut ke file docker .

MEMBUKA80
MEMBUKA8080
MEMBUKAdua puluh satu
MEMBUKA22
MEMBUKA53/udp
MEMBUKA3306
MEMBUKA27017
MEMBUKA27018

Jadi begitulah cara Anda mengekspos port menggunakan file docker . Untuk mempelajari lebih lanjut tentang file docker dan mengekspos port menggunakan file docker , membaca file docker panduan referensi di https://docs.docker.com/engine/reference/builder/#expose

Terima kasih telah membaca artikel ini.