Closed Noiri closed 3 years ago
user@vm:~$ curl 127.0.0.1:8080
curl: (7) Failed to connect to 127.0.0.1 port 8080: Connection refused
user@vm:~$
確かにつながらない
user@vm:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
78406f6bf4be nginx "/docker-entrypoint.…" 7 weeks ago Up 14 hours nginx
user@vm:~$
user@vm:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
78406f6bf4be nginx "/docker-entrypoint.…" 7 weeks ago Up 14 hours nginx
user@vm:~$ docker inspect 7
[
{
"Id": "78406f6bf4be04c8a8a6c795619c030f2a30f687896c7b857d4a05d18b4aeff3",
"Created": "2021-01-11T07:01:42.493968728Z",
"Path": "/docker-entrypoint.sh",
"Args": [
"nginx",
"-g",
"daemon off;"
],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 1210,
"ExitCode": 0,
"Error": "",
"StartedAt": "2021-03-05T11:26:44.294071049Z",
"FinishedAt": "2021-03-05T20:26:36.452514739+09:00"
},
"Image": "sha256:ae2feff98a0cc5095d97c6c283dcd33090770c76d63877caa99aefbbe4343bdd",
"ResolvConfPath": "/var/lib/docker/containers/78406f6bf4be04c8a8a6c795619c030f2a30f687896c7b857d4a05d18b4aeff3/resolv.conf",
"HostnamePath": "/var/lib/docker/containers/78406f6bf4be04c8a8a6c795619c030f2a30f687896c7b857d4a05d18b4aeff3/hostname",
"HostsPath": "/var/lib/docker/containers/78406f6bf4be04c8a8a6c795619c030f2a30f687896c7b857d4a05d18b4aeff3/hosts",
"LogPath": "/var/lib/docker/containers/78406f6bf4be04c8a8a6c795619c030f2a30f687896c7b857d4a05d18b4aeff3/78406f6bf4be04c8a8a6c795619c030f2a30f687896c7b857d4a05d18b4aeff3-json.log",
"Name": "/nginx",
"RestartCount": 0,
"Driver": "overlay2",
"Platform": "linux",
"MountLabel": "",
"ProcessLabel": "",
"AppArmorProfile": "docker-default",
"ExecIDs": null,
"HostConfig": {
"Binds": null,
"ContainerIDFile": "",
"LogConfig": {
"Type": "json-file",
"Config": {}
},
"NetworkMode": "none",
"PortBindings": {
"80/tcp": [
{
"HostIp": "",
"HostPort": "8080"
}
]
},
"RestartPolicy": {
"Name": "always",
"MaximumRetryCount": 0
},
"AutoRemove": false,
"VolumeDriver": "",
"VolumesFrom": null,
"CapAdd": null,
"CapDrop": null,
"CgroupnsMode": "host",
"Dns": [],
"DnsOptions": [],
"DnsSearch": [],
"ExtraHosts": null,
"GroupAdd": null,
"IpcMode": "private",
"Cgroup": "",
"Links": null,
"OomScoreAdj": 0,
"PidMode": "",
"Privileged": false,
"PublishAllPorts": false,
"ReadonlyRootfs": false,
"SecurityOpt": null,
"UTSMode": "",
"UsernsMode": "",
"ShmSize": 67108864,
"Runtime": "runc",
"ConsoleSize": [
0,
0
],
"Isolation": "",
"CpuShares": 0,
"Memory": 0,
"NanoCpus": 0,
"CgroupParent": "",
"BlkioWeight": 0,
"BlkioWeightDevice": [],
"BlkioDeviceReadBps": null,
"BlkioDeviceWriteBps": null,
"BlkioDeviceReadIOps": null,
"BlkioDeviceWriteIOps": null,
"CpuPeriod": 0,
"CpuQuota": 0,
"CpuRealtimePeriod": 0,
"CpuRealtimeRuntime": 0,
"CpusetCpus": "",
"CpusetMems": "",
"Devices": [],
"DeviceCgroupRules": null,
"DeviceRequests": null,
"KernelMemory": 0,
"KernelMemoryTCP": 0,
"MemoryReservation": 0,
"MemorySwap": 0,
"MemorySwappiness": null,
"OomKillDisable": false,
"PidsLimit": null,
"Ulimits": null,
"CpuCount": 0,
"CpuPercent": 0,
"IOMaximumIOps": 0,
"IOMaximumBandwidth": 0,
"MaskedPaths": [
"/proc/asound",
"/proc/acpi",
"/proc/kcore",
"/proc/keys",
"/proc/latency_stats",
"/proc/timer_list",
"/proc/timer_stats",
"/proc/sched_debug",
"/proc/scsi",
"/sys/firmware"
],
"ReadonlyPaths": [
"/proc/bus",
"/proc/fs",
"/proc/irq",
"/proc/sys",
"/proc/sysrq-trigger"
]
},
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/326fc3d68d05be657431f4b01c62105224acfdb269e3c53b3c27f709ea639a6a-init/diff:/var/lib/docker/overlay2/1c89103e9fc8a3c7181bdbb44d6fe8e367d52b25159160d2179e90c89e2fd2d7/diff:/var/lib/docker/overlay2/d5028945e94c36f5d71d977db55ac4a913c773e3e329f3c879c0b5f4e4ed923d/diff:/var/lib/docker/overlay2/724183fda4c988c66a14a4bb991ba406e6ecc99f705d05d6fa3a6bc981c68f9d/diff:/var/lib/docker/overlay2/834bb3955e4c921de743408917497801900f2a47ae5280936632fec18d957fc4/diff:/var/lib/docker/overlay2/117c5ef153c19d438c28a96790488b744dbbf60aa60b73cb5471a65f336c333f/diff",
"MergedDir": "/var/lib/docker/overlay2/326fc3d68d05be657431f4b01c62105224acfdb269e3c53b3c27f709ea639a6a/merged",
"UpperDir": "/var/lib/docker/overlay2/326fc3d68d05be657431f4b01c62105224acfdb269e3c53b3c27f709ea639a6a/diff",
"WorkDir": "/var/lib/docker/overlay2/326fc3d68d05be657431f4b01c62105224acfdb269e3c53b3c27f709ea639a6a/work"
},
"Name": "overlay2"
},
"Mounts": [],
"Config": {
"Hostname": "78406f6bf4be",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"80/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"NGINX_VERSION=1.19.6",
"NJS_VERSION=0.5.0",
"PKG_RELEASE=1~buster"
],
"Cmd": [
"nginx",
"-g",
"daemon off;"
],
"Image": "nginx",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": [
"/docker-entrypoint.sh"
],
"OnBuild": null,
"Labels": {
"maintainer": "NGINX Docker Maintainers <docker-maint@nginx.com>"
},
"StopSignal": "SIGQUIT"
},
"NetworkSettings": {
"Bridge": "",
"SandboxID": "9387183e95e02e3f6e4b1a83bd6e376b94c80b706a7e89b6394b3d699a5bf978",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {},
"SandboxKey": "/var/run/docker/netns/9387183e95e0",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "",
"Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "",
"IPPrefixLen": 0,
"IPv6Gateway": "",
"MacAddress": "",
"Networks": {
"none": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"NetworkID": "40c3b553b46a8f5ca20e601e053e18b494d3b1f6ea4a86557cedb7c588db2f83",
"EndpointID": "cdb6149d069daaf1f7d559b96c7881727c82f052478725d8d9f527778181b67c",
"Gateway": "",
"IPAddress": "",
"IPPrefixLen": 0,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "",
"DriverOpts": null
}
}
}
}
]
user@vm:~$
ポートフォワーディングは設定してありそう 8080→80
user@vm:~$ sudo iptables -nvL
Chain INPUT (policy ACCEPT 12722 packets, 8186K bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 DOCKER-USER all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 DOCKER-ISOLATION-STAGE-1 all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- * docker0 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
0 0 DOCKER all -- * docker0 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- docker0 !docker0 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- docker0 docker0 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT 11838 packets, 704K bytes)
pkts bytes target prot opt in out source destination
Chain DOCKER (1 references)
pkts bytes target prot opt in out source destination
Chain DOCKER-ISOLATION-STAGE-1 (1 references)
pkts bytes target prot opt in out source destination
0 0 DOCKER-ISOLATION-STAGE-2 all -- docker0 !docker0 0.0.0.0/0 0.0.0.0/0
0 0 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
Chain DOCKER-ISOLATION-STAGE-2 (1 references)
pkts bytes target prot opt in out source destination
0 0 DROP all -- * docker0 0.0.0.0/0 0.0.0.0/0
0 0 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
Chain DOCKER-USER (1 references)
pkts bytes target prot opt in out source destination
0 0 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
user@vm:~$
pingは通る
user@vm:~$ ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.089 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.090 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.116 ms
64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.111 ms
^C
--- 127.0.0.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3070ms
rtt min/avg/max/mdev = 0.089/0.101/0.116/0.015 ms
docker inspect hogehoge
のnetworkの設定が空なのが気になる
user@vm:~$ docker network inspect 4
[
{
"Name": "none",
"Id": "40c3b553b46a8f5ca20e601e053e18b494d3b1f6ea4a86557cedb7c588db2f83",
"Created": "2021-01-11T16:01:17.709613282+09:00",
"Scope": "local",
"Driver": "null",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": []
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"78406f6bf4be04c8a8a6c795619c030f2a30f687896c7b857d4a05d18b4aeff3": {
"Name": "nginx",
"EndpointID": "cdb6149d069daaf1f7d559b96c7881727c82f052478725d8d9f527778181b67c",
"MacAddress": "",
"IPv4Address": "",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
noneネットワークとやらにいるみたい これIP振られてないやんけ!
https://qiita.com/TsutomuNakamura/items/ed046ee21caca4a2ffd9
none ネットワークについて
Docker_Network0001.png
none ネットワークはnull なネットワークドライバの実装です。
ネットワーク接続を必要としないコンテナを作成する場合に使用されます。
none ネットワークを使用したbusy box コンテナを起動し、コンテナにログインしてネットワークを見てみましょう。
ほかのネットワークに移してあげれば多分つながるね
原因 noneネットワークに登録されている
解決策 ほかのネットワークに移動させる
今回はいったん切断→bridgeに接続
user@vm:~$ docker network ls
NETWORK ID NAME DRIVER SCOPE
6626ab450b6c bridge bridge local
f08f26a27c77 host host local
40c3b553b46a none null local
user@vm:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
78406f6bf4be nginx "/docker-entrypoint.…" 7 weeks ago Up 15 hours nginx
user@vm:~$ docker network disconnect none 78406f6bf4be04c8a8a6c795619c030f2a30f687896c7b857d4a05d18b4aeff3
user@vm:~$ docker network connect bridge 78
},
"NetworkSettings": {
"Bridge": "",
"SandboxID": "9387183e95e02e3f6e4b1a83bd6e376b94c80b706a7e89b6394b3d699a5bf978",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {
"80/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "8080"
}
]
},
"SandboxKey": "/var/run/docker/netns/9387183e95e0",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "99db5a27069c94f446f35fe628ebe74a1aa203cb026c1d5a5022a5688afca51d",
"Gateway": "172.17.0.1",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"MacAddress": "02:42:ac:11:00:02",
"Networks": {
"bridge": {
"IPAMConfig": {},
"Links": null,
"Aliases": [],
"NetworkID": "6626ab450b6c11c375f252af836a0352d2bdce6d1e5477b33f9865df52f9a4cd",
"EndpointID": "99db5a27069c94f446f35fe628ebe74a1aa203cb026c1d5a5022a5688afca51d",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:11:00:02",
"DriverOpts": {}
}
}
}
}
]
user@vm:~$ curl 127.0.0.1:8080
<!DOCTYPE html>
<html>
<head>
<title>Welcome to ICTSC2020!</title>
</head>
<body>
<h1>Welcome to ICTSC2020!</h1>
</body>
</html>
user@vm:~$
Done
回答
お世話になっております。
チームkstmの北沢です。
今回の問題につきましては、作成されたコンテナがnone
ネットワークに接続されていたことが原因と考えられます。
このネットワークでは所属するコンテナにipアドレスが割り当てられず、外部接続用のネットワークインターフェースも作成されないため、コンテナは外部から接続できない状態となります。
解決策としては、コンテナを他ネットワークに接続させることが考えられます。
今回はnone
ネットワークから切断し、bridge
ネットワークに接続することで解消いたしました。
user@vm:~$ docker network ls
NETWORK ID NAME DRIVER SCOPE
6626ab450b6c bridge bridge local
f08f26a27c77 host host local
40c3b553b46a none null local
user@vm:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
78406f6bf4be nginx "/docker-entrypoint.…" 7 weeks ago Up 15 hours nginx
user@vm:~$ docker network disconnect none 78406f6bf4be04c8a8a6c795619c030f2a30f687896c7b857d4a05d18b4aeff3
user@vm:~$ docker network connect bridge 78
user@vm:~$ curl 127.0.0.1:8080
<!DOCTYPE html>
<html>
<head>
<title>Welcome to ICTSC2020!</title>
</head>
<body>
<h1>Welcome to ICTSC2020!</h1>
</body>
</html>
user@vm:~$
以上、お手数をおかけしますが、ご確認をお願い致します。
問題名 コンテナに繋がらない 概要 大学2年生になり、人生で初めてエンジニアとしてアルバイトをICTSC社で始めたAくんは、上司から勉強を兼ねてDockerのNginxコンテナを使ってWEBサイトを公開して欲しいと依頼された。しかし、コンテナを立てても全く繋がらない。このコンテナに接続できない原因が何であるか調査し、Webサイトが表示されるよう修正せよ。
前提条件 初期状態で配置されているコンテナを作り直して回答しない 初期状態 curl 127.0.0.1:8080をVM上で実行するとcurl: (7) Failed to connect to 127.0.0.1 port 8080: Connection refusedと返ってくる。 終了状態 なぜ繋がらないか原因を特定し、報告している。
curl 127.0.0.1:8080をVM上で実行すると
Welcome to ICTSC2020!
が表示される。