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”.
- Cara Memajukan Port dalam Docker Menggunakan Docker Compose
- Cara Memajukan Port ke Rangkaian Tertentu
- Kesimpulan
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
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
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 psDalam 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
Untuk melihat rangkaian Docker, gunakan ' rangkaian buruh pelabuhan ls ” perintah:
rangkaian buruh pelabuhan lsDi 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-imgDalam 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