Como poderia rastrear o meu contentor do meu hospedeiro?
criei um Contentor de acopladores ubuntu no meu mac
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5d993a622d23 ubuntu "/bin/bash" 42 minutes ago Up 42 minutes 0.0.0.0:123->123/tcp kickass_ptolemy
marquei a porta como 123.
O meu recipiente IP é 172.17.0.2
docker inspect 5d993a622d23 | grep IP
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"IPAMConfig": null,
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
No meu Mac, tento localizar o meu contentor.
Ping 172.17.0.2
, tenho um pedido de tempo limite para o icmp_seq 0....
4 answers
Você não pode localizar ou acessar uma interface de contêiner diretamente com o acoplador para Mac.
A melhor solução actual é ligar-se aos seus contentores de outro contentor. No momento não há nenhuma maneira que nós podemos fornecer roteamento a estes contêineres devido a problemas com OSX que a Apple ainda não tem resolvido. estamos a seguir esta exigência, mas não podemos fazer nada. neste momento.
Docker Toolbox / VirtualBox
Ao executar o acoplador Toolbox, Docker Machine via VirtualBox ou qualquer VM VirtualBox (como uma definição Vagrant ) Você pode configurar uma "rede apenas para Máquinas" e aceder à rede Docker VMs através disso.
Se estiver a utilizar o default
boot2docker VM, não altere a interface existente, pois irá impedir que muitos utilitários do Docker funcionem, adicione uma nova interface.
Também terá de configurar o encaminhamento do seu Mac para as redes de contentores através do novo endereço IP do seu VM. No meu caso, a O intervalo de rede do Docker é 172.22.0.0/16
e o IP do adaptador da Máquina apenas no VM é 192.168.99.100
.
sudo route add 172.22.0.0/16 192.168.99.100
Adicionar uma via permanente ao osx {[8] } é um pouco mais complexa
Depois pode chegar aos contentores do seu Mac
machost:~ ping -c 1 172.22.0.2
PING 172.22.0.2 (172.22.0.2): 56 data bytes
64 bytes from 172.22.0.2: icmp_seq=0 ttl=63 time=0.364 ms
--- 172.22.0.2 ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.364/0.364/0.364/0.000 ms
Em alternativa, se o seu contentor tiver uma shell bash incorporada, pode aceder-lhe através de
docker exec -it <CONTAINER ID> bash
E depois podes localizar o teu ip virtual
Configuração:
PC-A
a é a máquina de docker, PC-B
é um outro PC na rede. Para ping/access docker container from PC-B
, execute as regras abaixo iptables
-rules in the host.
iptables -A FORWARD -i docker0 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o docker0 -j ACCEPT
Nota: eth0
é a interface da máquina e docker0
é a ponte virtual predefinida do acoplador.
Agora adicione a via em PC-B
route add -net <dockerip> netmask <net mask> gw <docker's host>
Contactar/aceder directamente aos Serviços de contentores.
Funciona neste cenário:
- máquina do Windows
- VM Linux instalado na máquina do Windows
- contentor do acoplador instalado na máquina Linux VM
Agora, na sua máquina do Windows, tem de adicionar uma rota para a nossa rede de contentores: route add "Docker container network ""Linux VM IP" por exemploSysctl net.ipv4.conf.todo.forwarding=1
Sudo iptables-P FORWARD ACCEPT
Route add 172.17.0.0/16 192.168.1.20
Blockquote