Bagaimana untuk Memajukan Port di Docker

Bagaimana Untuk Memajukan Port Di Docker



Docker ialah platform dockerization yang disukai ramai yang menyekat aplikasi dan perisian dalam persekitaran terpencil yang dikenali sebagai bekas. Semasa melaksanakan aplikasi dalam bekas, pengguna biasanya dikehendaki mengakses aplikasi kontena di luar bekas. Untuk tujuan ini, pengguna perlu menggunakan teknik penghantaran port.

Pemajuan port dalam Docker ialah proses yang membolehkan kami mendedahkan port kontena pada sistem hos Docker. Ia membenarkan kami menjalankan aplikasi dalam persekitaran terpencil dan juga menjadikannya boleh diakses dari luar bekas pada mesin pengguna.

Siaran ini akan menunjukkan:







Cara Memajukan Port dalam Docker Menggunakan Teg “-p” atau “–publish”.

Untuk memajukan port dalam Docker, pengguna perlu menerbitkan port kontena pada hos Docker. Untuk tujuan ini, jalankan bekas pada hos docker menggunakan ' -hlm ” atau “ -menerbitkan 'tag dalam' lari berlabuh ” perintah.



Untuk demonstrasi yang betul, ikut arahan di bawah.



Langkah 1: Buat Dockerfile

Mula-mula, buat fail dan tetapkan namanya sebagai ' Dockerfile ”. Fail ini mengandungi arahan teks untuk mencipta templat bekas Docker. Sebagai contoh, mari kita dok program Golang mudah menggunakan coretan di bawah dalam fail Docker:





DARI golang: 1.8

WORKDIR / pergi / src / aplikasi

SALINAN main2.go .

LARI pergi bina -O pelayan web.

DEDAHKAN 8080

CMD [ './webserver' ]

Dalam coretan yang diberikan:

  • DARI Perintah ” digunakan untuk menetapkan imej asas.
  • WORKDIR ” mentakrifkan direktori kerja bekas.
  • SALINAN arahan ” akan mencipta salinan fail program dalam laluan yang ditentukan bekas.
  • LARI arahan ” akan melaksanakan arahan yang ditentukan dalam bekas.
  • DEDAHKAN arahan ” menentukan port tempat kontena akan didengari.
  • CMD ” menentukan titik boleh laku bagi bekas.

Langkah 2: Buat Program Golang

Seterusnya, buat fail lain bernama ' main2.go ” dan tampal program Golang yang disediakan di bawah yang mencetak rentetan ringkas pada port “ 8080 ”:



pakej utama

import (

'fmt'

'log'

'bersih/http'

)

pengendali fungsi ( Dalam http.ResponseWriter, r * http.Permintaan ) {

html := `

DOCTYPE html >

< html >

< kepala >

< tajuk > Hello Golang ! tajuk >

< gaya >

badan {

warna latar belakang: #D2B48C;

}

.bekas {

text-align: tengah;

padding: 50px;

}

gaya >

kepala >

< badan >

< div kelas = 'bekas' >

< h1 > Hello ! Selamat datang ke Tutorial LinuxHint h1 >

div >

badan >

html >`

w.Tajuk ( ) .Set ( 'Jenis kandungan' , 'teks/html' )

fmt.Fprint ( Dalam , html )

}

fungsi utama ( ) {

http.HandleFunc ( '/' , pengendali )

log.Maut ( http.ListenAndServe ( '0.0.0.0:8080' , tiada ) )

}

Langkah 3: Hasilkan Syot Kilat Bekas

Sekarang, hasilkan syot kilat untuk bekas daripada fail Docker yang ditentukan di atas. Untuk tujuan ini, pertama, navigasi ke direktori tempat Dockerfile dibuat menggunakan ' cd ” perintah:

Seterusnya, hasilkan imej bekas baharu menggunakan arahan yang diberikan:

binaan buruh pelabuhan -t golang-img .

Keputusan yang diberikan menunjukkan bahawa imej dicipta mengikut konteks binaan yang disediakan.

Langkah 4: Majukan Pelabuhan Hos ke Pelabuhan Kontena

Sekarang, laksanakan bekas dan majukan port hos ke port kontena untuk mengakses aplikasi dockerize di luar bekas pada mesin tempatan. Untuk tujuan ini, jalankan “docker run –name -p : ” perintah:

lari berlabuh --nama go-cont -hlm 8080 : 8080 golang-img

Di sini, ' -hlm ” flag digunakan untuk menerbitkan port pelaksana kontena pada hos docker:

Langkah 5: Pengesahan

Untuk pengesahan, lihat bekas yang sedang berjalan menggunakan ' pekerja pelabuhan ps ”:

pekerja pelabuhan ps

Dalam hasil di bawah, aplikasi kontena sedang mendengar pada antara muka rangkaian yang tersedia ' 0.0.0.0 ” pada port yang diterbitkan “ 8080 ”. Ini menunjukkan bahawa port dimajukan ke aplikasi yang sedang berjalan pada mesin hos:

Sekarang, lancarkan penyemak imbas dan navigasi ke “ http://localhost:8080/ ” dan sahkan sama ada teknik penghantaran port digunakan atau tidak dan jika aplikasi kontena boleh diakses di luar kontena pada sistem hos:

Di sini kami telah berjaya memajukan port hos ke port kontena dan aplikasi boleh diakses pada hos docker.

Cara Memajukan Port dalam Docker Menggunakan Docker Compose

Untuk memajukan port kontena kepada hos untuk mengakses aplikasi kontena dari luar kontena, pengguna boleh menggunakan ' pelabuhan ” masukkan fail yaml karang. Docker compose ialah perkhidmatan Docker yang membolehkan kami menjalankan perkhidmatan dan aplikasi yang berbeza dalam bekas yang berbeza. Menggunakan ' docker-compose.yml ”, pengguna juga boleh memajukan port kontena ke mesin hos dan mempunyai sambungan aplikasi ke dunia luar.

Lihat prosedur di bawah untuk ilustrasi.

Langkah 1: Buat Fail Karang

Pertama, hasilkan fail bernama ' docker-compose.yml ” dan tambah kandungan berikut pada fail:

versi: '3'

perkhidmatan:

web:

membina: .

pelabuhan:

- 8080 : 8080

Dalam coretan di atas, ' pelabuhan kunci ” digunakan untuk menyambungkan hos ke port kontena. Di sini, nilai pertama ialah port hos, dan nilai kedua ialah port kontena.

Langkah 2: Lancarkan Apl

Selepas menentukan arahan dalam fail karang, lancarkan aplikasi dalam bekas menggunakan ' docker-compose up ” perintah:

docker-compose up

Langkah 3: Pengesahan

Untuk pengesahan, senaraikan bekas karang menggunakan ' docker-karang ps ” perintah:

karang docker ps -a

Untuk menyemak sama ada bekas boleh diakses pada mesin hos, navigasi ke ' http://localhost:8080/ ” URL. Di sini, anda dapat melihat kami telah memajukan port kontena dengan berkesan pada hos:

Cara Memajukan Port ke Rangkaian Tertentu

Untuk memajukan port kontena ke rangkaian tertentu, pengguna perlu menentukan rangkaian di mana mereka ingin mengakses kontena menggunakan ' –rangkaian ” pilihan. Lihat langkah-langkah yang diberikan untuk demonstrasi.

Langkah 1: Buat Rangkaian

Buat rangkaian baharu menggunakan “ rangkaian docker buat ” perintah. Secara lalai, rangkaian ini akan menggunakan pemacu jambatan:

rangkaian docker buat mygo-network

Untuk melihat rangkaian Docker, gunakan ' rangkaian buruh pelabuhan ls ” perintah:

rangkaian buruh pelabuhan ls

Di sini, kami telah berjaya mencipta ' mygo-network 'iaitu menggunakan' jambatan 'pemandu:

Langkah 2: Rangkaian Peta

Untuk menjalankan dan mengakses bekas pada rangkaian tertentu menggunakan teknik pemajuan port, gunakan arahan di bawah:

lari berlabuh -hlm 8080 : 8080 --rangkaian mygo-network golang-img

Dalam arahan yang diberikan, ' -hlm ” pilihan menerbitkan bekas pada port tertentu rangkaian yang ditentukan. Di sini, ' –rangkaian 'pilihan digunakan untuk menentukan rangkaian docker:

Untuk pengesahan, navigasi sekali lagi ke ' http://localhost:8080 ” dan semak sama ada bekas boleh diakses pada rangkaian yang ditentukan atau tidak:

Output di atas menunjukkan bahawa kami telah memajukan port kontena dengan berkesan pada rangkaian tertentu.

Catatan: Semasa menggunakan rangkaian 'hos', pengguna tidak perlu menerbitkan port dari bekas ke hos menggunakan ' -hlm ” atau “ -menerbitkan ” pilihan.

Majukan Port ke Rangkaian Tertentu Menggunakan Docker Compose

Tambahkan coretan berikut dalam “ docker-compose.yml ” fail. Dalam coretan di bawah, ' rangkaian kunci ” digunakan untuk menentukan rangkaian:

versi: '3'
perkhidmatan:

web:
membina: .
pelabuhan:
- 8080 : 8080

Sekarang, lancarkan aplikasi dalam bekas menggunakan ' docker-compose up ” perintah:

docker-compose up

Kami telah merangkumi kaedah untuk pemajuan port di Docker.

Kesimpulan

Untuk memajukan port dalam Docker untuk mengakses aplikasi dockerize di luar bekas, pengguna boleh sama ada menggunakan ' -hlm ” atau “ -menerbitkan 'pilihan dalam' lari berlabuh arahan ” atau pengguna boleh menggunakan “ pelabuhan ” kunci dalam fail karang Docker. Untuk mengakses kontena pada rangkaian tertentu, pengguna boleh memajukan port kontena pada rangkaian dengan menggunakan ' –rangkaian ” pilihan. Blog ini telah menunjukkan teknik untuk memajukan port dalam Docker.