Docker PTR是什么?PTR是“pointer”的縮寫,它是指向IPv4地址的指針記錄。當一臺服務器(DNS服務器)需要將IPv4地址解析到與該地址關聯(lián)的域名時,就需要使用PTR記錄。而Docker PTR記錄是指向容器IP地址的指針記錄。Docker PTR的作用是什么?在Docker中,容器的IP地址是在內部網絡(bridge網絡)中分配的,而且容器的IP地址通常是私有IP,因此無法直接從互聯(lián)網上進行訪問。因此,如果您希望使用域名訪問容器內應用程序,需要使用Docker PTR記錄,將容器IP地址映射到域名上。
$ docker run -d -p 80:80 --name mynginx nginx
在上面的示例中,我們啟動了一個名為“mynginx”的Nginx容器,并將容器的80端口映射到主機的80端口。我們可以使用域名訪問容器中的應用程序,但必須在主機的DNS服務器或本地的hosts文件中添加mynginx.example.com指向容器的地址的PTR記錄。
Docker PTR記錄的格式如下:
<IP>.<in-addr.arpa> IN PTR <domain-name>
其中,“<IP>”是容器的IP地址,“<in-addr.arpa>”是IPv4反向解析域名,“IN PTR”是PTR記錄類型,“<domain-name>”是域名。
通過命令行運行docker exec命令,我們可以進入容器,查看容器的IP地址:
$ docker exec mynginx ifconfig
我們可以看到容器的IP地址是172.17.0.2。因此,可以在DNS服務器或本地的hosts文件中添加以下Docker PTR記錄:
2.0.17.172.in-addr.arpa. IN PTR mynginx.example.com.
這里,“<IP>”是容器的IP地址,“<in-addr.arpa>”是IPv4反向解析域名,“IN PTR”是PTR記錄類型,“<domain-name>”是域名。
現(xiàn)在,我們可以使用mynginx.example.com域名訪問容器中的Nginx應用程序了。