Docker是一款非常流行的虛擬化軟件,可以幫助程序員快速開發、測試和部署應用程序。在使用Docker時,一個重要的問題是如何設置Docker容器與宿主機之間的訪問。
在Docker容器啟動時,Docker會為容器分配一個虛擬IP地址。這個地址在容器內部可以使用,但是宿主機并沒有辦法直接訪問它。如果想要從外部訪問Docker容器中運行的應用程序,必須將Docker容器的IP地址映射到宿主機的IP地址上。
假設宿主機的IP地址為192.168.0.100,Docker容器的IP地址為172.17.0.2,我們可以使用Docker提供的端口映射功能將容器的IP地址映射到宿主機的IP地址上。
docker run -p 80:80 nginx
上述命令會創建一個名為nginx的Docker容器,并將容器的80端口映射到宿主機的80端口上。這樣,在宿主機上訪問http://192.168.0.100就可以訪問到nginx容器中運行的Web應用程序了。
需要注意的是,在Docker容器內部訪問宿主機的IP地址時,需要使用宿主機的真實IP地址,而不是通過端口映射得到的IP地址。
可以使用以下命令查看宿主機的IP地址。
ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
上述命令會輸出宿主機的IP地址。