Jadi saya menggunakan Docker Toolbox karena saya tidak memiliki Hyper-V di komputer saya karena ini bukan Windows 10 pro. Semuanya tampak berfungsi dengan baik, tetapi ketika saya mencoba membuka browser saya, saya 0.0.0.0:80
selalu ditampilkan kembali: Situs ini tidak dapat dijangkau
Tetapi ketika saya menjalankan perintah: docker container ps
Saya mendapatkan yang berikut: 0.0.0.0:80->80/tcp
artinya alamat ini harus berfungsi. Saya mencari di seluruh masalah stackoverflow dan github. Sekarang saya terjebak.
Apakah saya melewatkan sesuatu?
Terima kasih, Mark
EDIT:
Menggunakan docker-machine ip default
mengembalikan saya 192.168.99.100
. Saya menjalankannya di port 80. Saya masih mendapatkan hasil yang sama kecuali bahwa alamatnya menjadi id kontainer:https://fd677edg12
Saya menjalankan bahwa perintah pada cmd untuk menemukan IPv4 saya: cmd /k ipconfig /all
. Letakkan hasilnya dengan port dan mengembalikan hal yang sama:https://fd677edg12
sumber
docker-machine default ip -> 192.168.99.100
Jadi saya taruh ini di alamat:192.168.99.100:80
Saya masih mendapatkan hasil yang sama.Jawaban:
Docker Toolbox tidak mendapatkan kemudahan sebanyak Docker untuk Windows, tetapi Anda benar dalam menggunakannya karena Anda menggunakan edisi Home.
Di Toolbox, tidak ada yang akan
localhost
, dan akan menjadi192.168.99.100
default, karena menjalankan VM Linux di VirtualBox.Jadi jika Anda lari
docker run -p 80:80 nginx
(perhatikan saya harus menerbitkan port untuk
192.168.99.100
mendengarkan di port itu)Maka pergi
http://192.168.99.100
harus bekerja.sumber
docker run -p 80:80 -d nginx
. Saya pergi ke alamat tersebut dan itu mengarahkan saya kehttps://dev/
, sekali lagi dikatakan bahwa situs tersebut tidak dapat dijangkau. Saya juga ingin memverifikasi apakah saya memilikihosts
file (meskipun saya tahu itu bukan localhost). Saya mengomentari semuanya di sana.docker-machine
cli. Anda dapat menggunakandocker-machine --help
untuk melihat apa yang dapat Anda lakukan untuk mengelola VM VirtualBox (atau membuat lebih banyak).Saya awalnya memiliki beberapa masalah dengan mengakses Aplikasi saya di localhost: 8080 saat menggunakan DockerToolBox dan OracleVM VirtualBox.
Di VirtualBox:
8080
& Guest Port8080
; pastikan untuk membiarkan IP Host dan IP Tamu kosongJalankan perintahnya:
sumber
C:\Windows\System32\drivers\etc\hosts
) - Saya harus memeriksa keduanya sebelum berfungsi untuk saya ;-)Saya mengikuti tutorial buruh pelabuhan untuk windows di https://docs.docker.com/docker-for-windows/#set-up-tab-completion-in-powershell dan terjebak di langkah # 6 saat menguji nginx di browser web . Sepertinya saya menghadapi masalah serupa karena saya juga menggunakan Windows Home dan tidak memiliki Hyper-V. Solusi saya cukup sederhana:
Buka Oracle Virtual Machine untuk mengatur penerusan port. Pastikan setelan jaringan adalah NAT, dan tambahkan penerusan porta. IP Host: 127.0.0.1, IP Tamu: 192.168.99.100, port semua diatur ke 80 seperti ini
Coba lagi ke browser Anda dan jalankan http: // localhost atau http://127.0.0.1 (bisa menambahkan port 80 juga). Ini harus berjalan.
Masalahnya adalah bahwa IP nginx dimaksudkan untuk dapat diakses di dalam Mesin Virtual buruh pelabuhan, sehingga kita memerlukan pengaturan port forwading untuk mengaksesnya langsung di browser mesin host
sumber
HOST:CONTAINER
port berbeda, misalnyadocker run --detach --publish 8081:80 --name webserver nginx
. Menemukan bahwa dalam hal ini saya harus meneruskanHOST
port saja, yaitu dalam pengaturan VirtualBoxHost IP=127.0.0.1
;Host Port=8081
;Guest IP=192.168.99.100
;Guest Port=8081
, tidak80
seperti yang saya kira sebelumnya. Sepertinya di mesin Windows 7 saya dengan Docker Toolbox Docker meneruskan dari port kontainer80
ke192.168.99:8081
dan saya meneruskan dari192.168.99:8081
kelocalhost:8081
karena192.168.99:8081
tidak menampilkan apa pun di browser web.Anda dapat menggunakan
localhost
sebagai pengganti '192.168.99.100' dengan mengikuti petunjuk:Langkah # 01:
Anda akan melihat IP default
Langkah # 02:
Langkah # 03:
VirtualBox Manager
)i.e, app name : nginx, host: 127.0.0.1, host port: 80, guest port: 80
Langkah # 04: Sekarang Anda siap untuk memulai Mesin Docker Anda dengan menjalankan yang berikut ini:
Kemudian mulai wadah Docker Anda dan Anda akan dapat mengaksesnya melalui localhost.
Lihat di sini untuk detailnya.
sumber
Untuk memetakan port yang diharapkan
localhost
alih-alih mengenai IP mesin buruh pelabuhan secara langsung, Anda dapat menggunakan VirtualBox CLI.Jika VM mesin galangan (di sini disebut
default
) sedang berjalan, tambahkan dan hapus aturan seperti ini:Jika VM tidak berjalan, atau Anda ingin berhenti sebelum mengubahnya:
Dimana format aturan penerusan port
[<name>],tcp|udp,[<hostip>],<hostport>,[<guestip>], <guestport>
.Perhatikan bahwa di VirtualBox, Anda ingin memetakan ke port host peta Docker, bukan port container internal. Anda memetakan host -> VM, lalu Docker memetakan VM -> container.
Lihat dokumen VirtualBox .
sumber
Ini adalah cara mudah lain untuk menghindari pengetikan ip 192.168.99.100. Pergi ke
C:\Windows\System32\drivers\etc\hosts
dan tambahkan di akhir file:192.168.99.100 docker.awesome
atau nama apa pun yang Anda sukai.Simpan file (Anda harus memiliki hak admin, jadi pastikan Anda mengklik kanan pada file tersebut dan menjalankan sebagai administrator agar dapat menyimpannya saat Anda mengeditnya).
Pergi ke nama domain pilihan Anda, docker.awesome: 8080 dalam kasus ini dan begitulah.
sumber
Setelah banyak uji coba, saya bisa mendapatkan papan buletin ini.
Perintah docker run yang saya gunakan - docker run -p 4680: 8080 --name bb bulletinboard: 1.0 Di sini, 4680 adalah nomor port localhost. 8080 adalah nomor port kontainer, port tempat kontainer akan mendengarkan. Nomor port ini disebutkan dalam perintah EXPOSE di Dockerfile.
Lalu, masuk ke browser web dan ketik 192.168.99.100:4680
Di sini, 192.168.99.100 adalah alamat IP mesin buruh pelabuhan (gunakan perintah -> ip mesin buruh pelabuhan)
Semoga ini bisa membantu kalian semua !!
sumber