Exposez les conteneurs Docker au réseau VPC

8

J'ai un serveur Ubuntu exécutant Docker avec un conteneur. L'adresse IP de mon serveur est 172.31.12.29/20 dans mon vpc. Il a des ponts de remorquage (docker0 et lxcbr0).

Mon adresse IP de conteneur est 172.17.0.2/16.

L'hôte et le conteneur peuvent s'exécuter eux-mêmes.

J'ai un autre serveur dans mon vpc avec 172.31.1.233/20 pour l'adresse IP. Je veux juste que j'atteigne mes conteneurs depuis ce serveur mais je ne sais pas comment faire.

Mes deux serveurs peuvent se cingler.

J'essaie de faire cela en configurant ma table de routes vpc pour router les demandes ciblées 172.17.0.0/16 vers 172.31.12.29 mais cela ne fonctionne pas.

Une idée ?

Coûteux
la source

Réponses:

5

Il semble que vous devez également désactiver la vérification IP source / destination sur l'instance hébergeant les conteneurs (et vous avez besoin de la route statique dans la table de routage VPC, pointant vers cette instance par id). L'infrastructure de réseau VPC supprime le trafic IP avec des adresses IP qui n'ont aucun sens en fonction de ce que l'infrastructure connaît en interne sur les adresses IP associées à chaque instance. Ce paramètre modifie cette fonctionnalité sur les instances où vous l'appliquez. Si vous avez une instance NAT, vous remarquerez que cela est déjà fait pour cette instance, sinon elle ne pourrait pas acheminer le trafic externe vers / depuis d'autres instances.

http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/ApiReference-cmd-ModifyInstanceAttribute.html

C'est également sur les actions d'instance dans la console.

Michael - sqlbot
la source
0

Vous pouvez exposer le port du conteneur (docker run -p 1234: 1234) et vous connecter à l'adresse de vos instances ec2 (10.xyz:1234)

Pour éviter le codage en dur des adresses côté consommateur, vous pouvez utiliser le modèle d'ambassadeur: https://docs.docker.com/engine/admin/ambassador_pattern_linking/

Johannes 'fish' Ziemke
la source