I'm struggling communicating between two docker containers created by minidcos using hostnames. Here is what I did:
Step 1: Creating a new docker network
$ docker network create minidcos
Step 2: Creating a new minidcos cluster:
$ minidcos docker create
--docker-version 17.12.1-ce
--agents 4
--workspace-dir ./workspace
--network minidcos
--genconf-dir ./custom-genconf
--verbose
./dcos_generate_config.sh
Step 3: List containers
$ docker ps
89d2861fd037 mesosphere/dcos-docker "/sbin/init" 31 minutes ago Up 31 minutes dcos-e2e-default-d67b8-public-agent-0
33d0c83c07d7 mesosphere/dcos-docker "/sbin/init" 31 minutes ago Up 31 minutes dcos-e2e-default-d67b8-agent-3
221e9ecd4464 mesosphere/dcos-docker "/sbin/init" 31 minutes ago Up 31 minutes dcos-e2e-default-d67b8-agent-2
ef7dbf33fc53 mesosphere/dcos-docker "/sbin/init" 31 minutes ago Up 31 minutes dcos-e2e-default-d67b8-agent-1
b1994b77dce0 mesosphere/dcos-docker "/sbin/init" 31 minutes ago Up 31 minutes dcos-e2e-default-d67b8-agent-0
dc46644e391e mesosphere/dcos-docker "/sbin/init" 31 minutes ago Up 31 minutes dcos-e2e-default-d67b8-master-0
Step 4: Verify my custom "minidcos" network
$ docker network inspect minidcos
[
{
"Name": "minidcos",
"Id": "b105cbfe91228334b52406a2ccf53c2fdfc085b5030b9203684dd78a44f67d1c",
"Created": "2019-04-10T14:06:03.493606395+02:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "172.19.0.0/16",
"Gateway": "172.19.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"221e9ecd44648e5729d00b1d3fb5c677c499c3a181b06f76656e4404dca4ebca": {
"Name": "dcos-e2e-default-d67b8-agent-2",
"EndpointID": "073b3b6a35b555463893daf271cf2de367205ab0826fbbf82d6be46367d4d9f9",
"MacAddress": "02:42:ac:13:00:05",
"IPv4Address": "172.19.0.5/16",
"IPv6Address": ""
},
"33d0c83c07d7abe49fbdbacff68027e0f162ccf66fb348b3df8fa28216872d3d": {
"Name": "dcos-e2e-default-d67b8-agent-3",
"EndpointID": "e8ac563a652f5d69a740a75e1a9ba374ab648698d8d0e449abc23eed2b3f6359",
"MacAddress": "02:42:ac:13:00:06",
"IPv4Address": "172.19.0.6/16",
"IPv6Address": ""
},
"89d2861fd037a5dce81fa0079d445531328cc1b22650c80add5bf72c985dce0b": {
"Name": "dcos-e2e-default-d67b8-public-agent-0",
"EndpointID": "6e5cd6d75bd96922ea1e98360520849e1b459948fe68fbba5b4a7e7d5a8db68d",
"MacAddress": "02:42:ac:13:00:07",
"IPv4Address": "172.19.0.7/16",
"IPv6Address": ""
},
"b1994b77dce008ef5c28f634ad14cfcbb69dc6c14ee530a784533ad09c9f8d58": {
"Name": "dcos-e2e-default-d67b8-agent-0",
"EndpointID": "4adc52ff6a64afd79d33c9b40559c9ff4c5086f12d7c82d26206ab876908b84e",
"MacAddress": "02:42:ac:13:00:03",
"IPv4Address": "172.19.0.3/16",
"IPv6Address": ""
},
"dc46644e391e4e9cc2978c534ab9eae91db31cff3f3d06e54a4870049fe080ab": {
"Name": "dcos-e2e-default-d67b8-master-0",
"EndpointID": "9460ea8a07722d5de337ad8375f452218b54462b5e1a98def7590725415fa09a",
"MacAddress": "02:42:ac:13:00:02",
"IPv4Address": "172.19.0.2/16",
"IPv6Address": ""
},
"ef7dbf33fc53d06ada2a29a6637c22a294263182a060a4ef35db365dd2fbaf17": {
"Name": "dcos-e2e-default-d67b8-agent-1",
"EndpointID": "228253db88795489a228bf9da7132475f4146b357dabff43ca6d009072e864ee",
"MacAddress": "02:42:ac:13:00:04",
"IPv4Address": "172.19.0.4/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
Now for what I understand, I should be able to ping each container by it's hostname. But this does not work for some reason. For example I cannot ping dcos-e2e-default-d67b8-agent-0 from dcos-e2e-default-d67b8-agent-1:
[root@dcos-e2e-default-d67b8-agent-1 /]# ping dcos-e2e-default-d67b8-agent-0
ping: dcos-e2e-default-d67b8-agent-0: Name or service not known
Why is that? Is it probably DC/OS preventing docker to resolve hostnames?
Update
I added another plain fedora container to the same "minidcos" network using docker create. From within this container I'm able to ping all other containers by it's hostname. Guess it's indeed DC/OS breaking hostname resolution...