Docker容器中的域名解析配置的問(wèn)題及解決過(guò)程
問(wèn)題描述
因?yàn)橐ㄟ^(guò)局域網(wǎng)域名訪問(wèn)其他服務(wù),在宿主機(jī)上配置了域名解析,對(duì)于docker容器無(wú)效。
解決辦法
局域網(wǎng)內(nèi)的域名不是公網(wǎng)可訪問(wèn),需要配置域名解析器才能正確訪問(wèn)。
Docker 容器無(wú)法解析局域網(wǎng)內(nèi)的域名,就算你配置了本地主機(jī)的 hosts 域名映射也不行。
Docker 環(huán)境不同于 wamp 或 xampp,對(duì)于局域網(wǎng)內(nèi)的域名解析,Docker 需要到 Docker 容器中配置 hosts 文件。
進(jìn)入容器的/etc/hosts文件配置域名解析
docker容器啟動(dòng)后進(jìn)入/etc/hosts配置域名解析,具體操作如下:
- 進(jìn)入docker容器:
docker exec -it 容器id /bin/sh
- 在
/etc/hosts文件配置域名解析
vi /etc/hosts
hosts文件案例如下:
127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 172.20.0.6 5bf80aa1c49f 180.101.49.11 www.baidu.com
??這種配置的缺點(diǎn)是每次容器啟動(dòng)都要重新配置。
docker build 構(gòu)建鏡像的時(shí)候添加
docker build --add-host zjq.com:172.2.3.4 -t local/test openjdk:latest .
docker run 啟動(dòng)容器的時(shí)候添加(推薦)
docker run -d --name container_name --add-host zjq.com:172.2.3.4 image_name:tag;
docker-compose.yml文件指定
zjqtest:
build: image_name:tag
extra_hosts:
zjq.com: 172.2.3.4
zjq666.com: 256.69.2.9
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Docker實(shí)現(xiàn)導(dǎo)入導(dǎo)出鏡像(Image)文件的代碼示例
在 Docker 中,鏡像(Image)是容器的基礎(chǔ),包含了應(yīng)用程序運(yùn)行所需的所有文件系統(tǒng)和配置,有時(shí),我們需要將 Docker 鏡像導(dǎo)出到文件中,以便在其他地方使用,以下將詳細(xì)介紹如何使用 Docker 導(dǎo)入導(dǎo)出鏡像文件,需要的朋友可以參考下2024-08-08

