Mon menu fixe conteneur n'a pas d'adresse IP. Pourquoi?
J'ai commencé un rethinkDB
docker conteneur à l'aide de la commande
docker pull rethinkdb:2.3
docker run --rm --name rethinkdb -v /srv/rethinkdb:/data --net host rethinkdb:2.3 rethinkdb --bind all --cache-size 8192 --no-update-check
Maintenant le conteneur a démarré avec succès. Je n'ai docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f288961ef376 rethinkdb:2.3 "rethinkdb --bind ..." 9 minutes ago Up 9 minutes rethinkdb
1f71722698ae sorccu/adb:latest "/sbin/tini -- adb..." 14 minutes ago Up 14 minutes adbd
Maintenant, je veux trouver l'adresse IP de ce conteneur. Donc je n'ai
docker inspect --format '{{ .NetworkSettings.IPAddress }}' f288961ef376
Elle retourne me sert de rien. Je ne pouvais pas trouver l'adresse IP de ce conteneur.
J'ai vérifié si le rethinkDB
page de configuration est en place ou pas en allant à http://localhost:8080
et je vois qu'il est en place et en cours d'exécution.
Pourquoi n'est-ce pas le bac n'importe quelle adresse IP?
Sortie de docker inspect
est comme suit
[
{
"Id": "f288961ef376531c97d2264cb8ef3c6077a6a75107905d6a47734303adfcb117",
"Created": "2017-05-05T11:13:45.382460184Z",
"Path": "rethinkdb",
"Args": [
"--bind",
"all",
"--cache-size",
"8192",
"--no-update-check"
],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 8157,
"ExitCode": 0,
"Error": "",
"StartedAt": "2017-05-05T11:13:45.774035358Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},
"Image": "sha256:c5ed876750b40cde4725ea9eb9d8503f4d1419a2f23ac2ef8e4cc1d535e2c3a2",
"ResolvConfPath": "/var/lib/docker/containers/f288961ef376531c97d2264cb8ef3c6077a6a75107905d6a47734303adfcb117/resolv.conf",
"HostnamePath": "/var/lib/docker/containers/f288961ef376531c97d2264cb8ef3c6077a6a75107905d6a47734303adfcb117/hostname",
"HostsPath": "/var/lib/docker/containers/f288961ef376531c97d2264cb8ef3c6077a6a75107905d6a47734303adfcb117/hosts",
"LogPath": "/var/lib/docker/containers/f288961ef376531c97d2264cb8ef3c6077a6a75107905d6a47734303adfcb117/f288961ef376531c97d2264cb8ef3c6077a6a75107905d6a47734303adfcb117-json.log",
"Name": "/rethinkdb",
"RestartCount": 0,
"Driver": "aufs",
"MountLabel": "",
"ProcessLabel": "",
"AppArmorProfile": "docker-default",
"ExecIDs": null,
"HostConfig": {
"Binds": [
"/srv/rethinkdb:/data"
],
"ContainerIDFile": "",
"LogConfig": {
"Type": "json-file",
"Config": {}
},
"NetworkMode": "host",
"PortBindings": {},
"RestartPolicy": {
"Name": "no",
"MaximumRetryCount": 0
},
"AutoRemove": true,
"VolumeDriver": "",
"VolumesFrom": null,
"CapAdd": null,
"CapDrop": null,
"Dns": [],
"DnsOptions": [],
"DnsSearch": [],
"ExtraHosts": null,
"GroupAdd": null,
"IpcMode": "",
"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": null,
"BlkioDeviceReadBps": null,
"BlkioDeviceWriteBps": null,
"BlkioDeviceReadIOps": null,
"BlkioDeviceWriteIOps": null,
"CpuPeriod": 0,
"CpuQuota": 0,
"CpuRealtimePeriod": 0,
"CpuRealtimeRuntime": 0,
"CpusetCpus": "",
"CpusetMems": "",
"Devices": [],
"DeviceCgroupRules": null,
"DiskQuota": 0,
"KernelMemory": 0,
"MemoryReservation": 0,
"MemorySwap": 0,
"MemorySwappiness": -1,
"OomKillDisable": false,
"PidsLimit": 0,
"Ulimits": null,
"CpuCount": 0,
"CpuPercent": 0,
"IOMaximumIOps": 0,
"IOMaximumBandwidth": 0
},
"GraphDriver": {
"Data": null,
"Name": "aufs"
},
"Mounts": [
{
"Type": "bind",
"Source": "/srv/rethinkdb",
"Destination": "/data",
"Mode": "",
"RW": true,
"Propagation": ""
}
],
"Config": {
"Hostname": "dev-machine",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": true,
"AttachStderr": true,
"ExposedPorts": {
"28015/tcp": {},
"29015/tcp": {},
"8080/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"RETHINKDB_PACKAGE_VERSION=2.3.5~0jessie"
],
"Cmd": [
"rethinkdb",
"--bind",
"all",
"--cache-size",
"8192",
"--no-update-check"
],
"Image": "rethinkdb:2.3",
"Volumes": {
"/data": {}
},
"WorkingDir": "/data",
"Entrypoint": null,
"OnBuild": null,
"Labels": {}
},
"NetworkSettings": {
"Bridge": "",
"SandboxID": "bd17bf8e1663ff18f6674a1a3a1665c4e1bf65283d358ffc97dc238ef4a79088",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {},
"SandboxKey": "/var/run/docker/netns/default",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "",
"Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "",
"IPPrefixLen": 0,
"IPv6Gateway": "",
"MacAddress": "",
"Networks": {
"host": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"NetworkID": "30b6150968580d33aae0e45f7d850b9e67ae2aa29e1bb837ca4fa74f2b0d4d42",
"EndpointID": "05e93ec514ee6694e57d344f3e4362252104347c3cc48c607708d125715ed6ec",
"Gateway": "",
"IPAddress": "",
"IPPrefixLen": 0,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": ""
}
}
}
}
]
essayez sans option de format
J'ai même inspecté le
joindre pls sortie de l'inspecter sans option de format
fait. pls voir le post original
c'est une sorte de deviner, mais essayez d'ajouter ti startp -p et de configurer le port et –net=accueil
J'ai même inspecté le
JSON
sortie de docker inspect f288961ef376
manuellement. Je ne vois pas l'adresse IPjoindre pls sortie de l'inspecter sans option de format
fait. pls voir le post original
c'est une sorte de deviner, mais essayez d'ajouter ti startp -p et de configurer le port et –net=accueil
OriginalL'auteur Damien-Amen | 2017-05-05
Vous devez vous connecter pour publier un commentaire.
Vous êtes à partir de votre récipient avec le
--net host
option qui signifie que votre conteneur sera exécuté sur votre réseau hôte. Vérifier ici pour plus d'info. Si votre conteneur sera accessible sur l'adresse IP de votre hôte.Un exemple très simple:
Cela va lancer jenkins sur votre véritable réseau de l'hôte. Ainsi, lorsque vous ouvrez le pare-feu (jenkins s'exécute sur 8080) vous permettra d'accéder à votre conteneur immédiatement.
Donc j'ouvre le pare-feu:
- Je vérifier l'adresse IP réelle de mon eth0 (réseau de l'hôte) avec
ifconfig
. (Je suis en train de faire cela sur une machine virtuelle). Il est inet192.168.140.7
. Je vais dans mon navigateur pour 192.168.140.7:8080 et je vois le jenkins. Si votre conteneur n'a pas de propre IP. Il est en cours d'exécution sur votre réseau hôte et IP de l'hôte.Si vous laissez le
--net host
option, le conteneur sera créé par défaut dans le panneau de pont réseau avec la gamme"172.17.0.0/16"
. Maintenant, votre conteneur obtiendrez une IP dans la plage de ce réseau. Pour accéder au conteneur de l'extérieur, vous devez mapper les ports sur votre réseau hôte (voir " plus d'infos). Vous pouvez faire cela avec le-p
option.Donc pour le jenkins exemple:
Lorsque j'effectue une
docker inspect
je vois:Donc mon conteneur est en cours d'exécution dans le pont réseau sur 172.17.0.4:8080.
Maintenant, avec la
-p
option que je suis cartographie le port 8080 de mon pont réseau sur 8888 de mon réseau de l'hôte: sihost-IP:8888
. Il est maintenant accessible à partir de l'extérieur.OriginalL'auteur lvthillo
Votre conteneur ip est la même que l'hôte.
host
dit essentiellement que votre conteneur utilise la même interface réseau que l'hôte. Il est rapide car il n'y a pas de transition, mais limité, mais Vous devez vous assurer que vos contenants ne pas écouter le même port pour éviter les conflits.Il est préférable de coller avec la valeur par défaut
bridge
réseau et spécifier le port que vous souhaitez exposés à l'hôte. Par exemple:btw,
--net
a été renommé--network
dans les versions ultérieures de Docker.OriginalL'auteur Alkaline