在Docker中,每個(gè)容器都有一個(gè)私有的IP地址。這對(duì)于容器內(nèi)部通信非常方便,但如果我們希望在外部訪問(wèn)容器,則需要使用Docker的公網(wǎng)IP。
默認(rèn)情況下,Docker會(huì)創(chuàng)建一個(gè)默認(rèn)的網(wǎng)絡(luò),其中容器可以互相通信。但是,這個(gè)默認(rèn)的網(wǎng)絡(luò)是不支持公網(wǎng)訪問(wèn)的。因此,我們需要手動(dòng)創(chuàng)建一個(gè)支持公網(wǎng)訪問(wèn)的網(wǎng)絡(luò)。
docker network create --driver=bridge --subnet=172.20.0.0/16 --gateway=172.20.0.1 public_network
在這個(gè)命令中,我們使用bridge驅(qū)動(dòng)創(chuàng)建了一個(gè)名為public_network的網(wǎng)絡(luò),子網(wǎng)為172.20.0.0/16,網(wǎng)關(guān)為172.20.0.1。這個(gè)網(wǎng)絡(luò)支持公網(wǎng)訪問(wèn)。
接下來(lái),我們可以使用這個(gè)網(wǎng)絡(luò)來(lái)啟動(dòng)容器。
docker run -d --name=nginx --net=public_network --ip=172.20.0.2 nginx
在這個(gè)命令中,我們使用public_network網(wǎng)絡(luò)啟動(dòng)了一個(gè)名為nginx的容器,并指定了它的IP地址為172.20.0.2。
現(xiàn)在,我們可以使用172.20.0.2這個(gè)IP地址來(lái)訪問(wèn)nginx容器。
總的來(lái)說(shuō),使用Docker公網(wǎng)IP可以方便地把容器的服務(wù)暴露給外部網(wǎng)絡(luò)。我們只需要手動(dòng)創(chuàng)建一個(gè)支持公網(wǎng)訪問(wèn)的網(wǎng)絡(luò),并在啟動(dòng)容器時(shí)指定IP地址即可。這個(gè)過(guò)程非常簡(jiǎn)單。