Avec une version plus récente de Docker, cela peut être fait avec docker-compose et sa fonction extra_hosts
directive
Ajouter des mappages de noms d'hôtes.
Utilisez les mêmes valeurs que le docker run
client --add-host
paramètre (qui devrait déjà être disponible pour docker 1.8).
extra_hosts:
- "somehost:162.242.195.82"
- "otherhost:50.31.209.229"
En bref : modifier /etc/hosts
de votre conteneur lors de son exécution, plutôt que lors de sa construction.
Avec Docker 17.x+, vous disposez d'une docker build --add-host
mentionné en dessous de mais, comme indiqué dans numéro 34078 et en cette réponse :
Le site --add-host
pendant la construction est conçue pour permettre de remplacer un hôte pendant la construction, mais pas pour persister cette configuration dans l'image.
Les solutions mentionnées font référence au docker-compose que je suggérais ci-dessus :
- Exécuter un DNS interne ; vous pouvez définir le serveur DNS par défaut à utiliser dans le démon ; de cette façon, chaque conteneur lancé utilisera automatiquement le DNS configuré par défaut.
- Utilisez docker compose et fournissez un
docker-compose.yml
à vos développeurs.
Le fichier docker compose vous permet de spécifier toutes les options qui doivent être utilisées lors du démarrage d'un conteneur. Ainsi, les développeurs peuvent se contenter de docker compose pour démarrer le conteneur avec toutes les options qu'ils doivent définir.
0 votes
Utilisez-vous boot2docker pour exécuter votre construction docker ?
0 votes
Non, j'utilise la version Linux de docker 1.8.
1 votes
Et lorsque vous exécutez votre image en tant que conteneur, son /etc/hosts est inchangé ? Ou bien faites-vous référence à votre hôte Linux /etc/hosts ?
8 votes
Pendant la construction du docker, l'image est construite avec succès, mais lorsque j'exécute un conteneur utilisant la même image et que je vérifie le fichier /etc/hosts, les changements ne sont pas présents.