Pertanyaan Kontainer docker saya tidak mulai di localhost (0.0.0.0) di Docker untuk Windows (Asli menggunakan Hyper-V)


saya mengikuti Tutorial Digital Ocean tentang cara memulai kontainer nginx docker (Saat ini pada Langkah 4). Saat ini ini adalah output mereka:

$ docker run --name docker-nginx -p 80:80 -d nginx
d3ccb73a91985651ec61231bca9f9c716f0dec807e354a29eeef2144f883a01c

$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                         NAMES
b91f3ce26553        nginx               "nginx -g 'daemon off"   About a minute ago   Up About a minute   0.0.0.0:80->80/tcp, 443/tcp   docker-nginx

Tetapi ketika saya menjalankannya, ini adalah output saya (perhatikan IP yang berbeda dari kontainer):

C:\>docker run --name docker-nginx -p 80:80 -d nginx
d3ccb73a91985651ec61231bca9f9c716f0dec807e354a29eeef2144f883a01c

C:\>docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                           NAMES
d3ccb73a9198        nginx               "nginx -g 'daemon off"   14 hours ago        Up 2 seconds        10.0.75.2:80->80/tcp, 443/tcp   docker-nginx

Mengapa ini terjadi? Dan bagaimana saya bisa mendapatkan hasil yang sama dengan Digital Ocean? (Mendapatkan server untuk memulai di localhost)


Edit: Saya menggunakan Docker untuk windows (baru-baru ini dirilis) yang tampaknya berjalan asli menggunakan Hyper-V. Output saya untuk docker-machine ls Apakah ini:

C:\>docker-machine ls
NAME   ACTIVE   DRIVER   STATE   URL   SWARM   DOCKER   ERRORS

C:\>

6
2018-06-23 13:17


asal


Jawaban:


Tapi ketika saya menjalankannya, ini adalah output saya (perhatikan IP yang berbeda dari   wadah)

Karena ini mesin Windows, saya berasumsi bahwa Anda menggunakan Toolbox Docker Docker untuk Windows. 10.0.75.2 adalah IP dari boot2docker mesin virtual.

Jika Anda menggunakan Windows atau Mac OS, Anda akan memerlukan beberapa bentuk virtualisasi memesan untuk menjalankan Docker. IP yang baru saja Anda lihat adalah IP dari mesin virtual ringan itu.

Dan bagaimana saya bisa mendapatkan hasil yang sama dengan Digital Ocean? (Mendapatkan   server untuk memulai di localhost)

Gunakan distribusi Linux! Anda juga dapat mengaktifkan Buka port penampung localhost di Docker Untuk Windows Pengaturan:

enter image description here


10
2018-06-23 13:22



Meskipun Anda membuat wadah di mesin lokal Anda. Ini sebenarnya berjalan di mesin yang berbeda (mesin virtual)

Pertama, periksa apa IP dari mesin docker Anda (mesin virtual)

$docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM
default   *        virtualbox   Running   tcp://192.168.99.100  

Lalu lari curl perintah (atau buka browser) untuk melihat situs web default pada Anda nginx server web di dalam wadah

curl http://192.168.99.100:80

6
2018-06-23 13:31