docker - 在 docker 容器内运行的主机命令无法解析容器主机名,但 ping 可以
问题描述
我在 docker 容器外壳中运行以下命令[root@quickstart /]
hostname
返回quickstart
hostname -i
返回172.17.0.3
然而,host quickstart
回报
Host quickstart not found: 3(NXDOMAIN)
并 [root@quickstart /]# host quickstart.cloudera
返回
Host quickstart.cloudera not found: 3(NXDOMAIN)
ping -q -c 1 quickstart
返回
PING quickstart.cloudera (172.17.0.3) 56(84) bytes of data.
--- quickstart.cloudera ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.053/0.053/0.053/0.000 ms
容器开始使用docker run --name my_cloudera --hostname=quickstart.cloudera --privileged=true -td -p 8888:8888 -p 7180:7180 -p 6680:80 -v ~/cloudera_data/lib:/var/lib my_cloudera /usr/bin/docker-quickstart
容器/etc/hosts
显示:
[root@quickstart /]# cat /etc/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.17.0.3 quickstart.cloudera quickstart
docker 守护进程在 MacOS 上运行
如何导致host
解析quickstart.cloudera
容器主机名?
解决方案
在启动容器时,--hostname
在docker run
命令中添加标志,您将能够看到它。看看下面的例子: -
$ docker run -it --hostname test alpine /bin/sh
/ # apk update
fetch http://dl-cdn.alpinelinux.org/alpine/v3.11/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.11/community/x86_64/APKINDEX.tar.gz
v3.11.6-71-gb45d3b45cc [http://dl-cdn.alpinelinux.org/alpine/v3.11/main]
v3.11.6-68-gf6abc2afac [http://dl-cdn.alpinelinux.org/alpine/v3.11/community]
OK: 11276 distinct packages available
/ # apk add bind-tools
(1/16) Installing fstrm (0.6.0-r1)
(2/16) Installing libgcc (9.2.0-r4)
(3/16) Installing krb5-conf (1.0-r1)
(4/16) Installing libcom_err (1.45.5-r0)
(5/16) Installing keyutils-libs (1.6.1-r0)
(6/16) Installing libverto (0.3.1-r1)
(7/16) Installing krb5-libs (1.17.1-r0)
(8/16) Installing json-c (0.13.1-r1)
(9/16) Installing libstdc++ (9.2.0-r4)
(10/16) Installing libprotobuf (3.11.2-r1)
(11/16) Installing libprotoc (3.11.2-r1)
(12/16) Installing protobuf-c (1.3.2-r3)
(13/16) Installing xz-libs (5.2.4-r0)
(14/16) Installing libxml2 (2.9.10-r3)
(15/16) Installing bind-libs (9.14.12-r0)
(16/16) Installing bind-tools (9.14.12-r0)
Executing busybox-1.31.1-r9.trigger
OK: 18 MiB in 30 packages
/ # hostname
test
/ # host -v test
Trying "test"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49171
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;test. IN A
;; ANSWER SECTION:
test. 15 IN A 127.0.0.1
推荐阅读
- php - 为所有链接添加一个参数 - ?和 & 以免链接断开
- python - 比较两个列表的元素并删除列表的特定元素
- python - 使用python无限刷新硒
- java - 将多条消息发布到同一个 pub 子主题的问题
- swift - 动态高度 UITableViewCell 闪烁
- python - 如何在字典中使用数据类?
- c# - 在 checkMarx 中获取 sql 注入漏洞问题:asmx with input as list
- r - 如何为 R 包小插图创建关键功能表
- php - 为什么多查询在一个表单中只运行一次?
- python - 带有 \t 和 \n 分隔符的 .txt 文件到 pandas 数据框