Je souhaite créer le flux d'infrastructure suivant:
Comment cela peut-il être réalisé avec Docker?
la source
Je souhaite créer le flux d'infrastructure suivant:
Comment cela peut-il être réalisé avec Docker?
Tout d'abord, vous devez installer un serveur SSH dans les images dans lesquelles vous souhaitez ssh-into. Vous pouvez utiliser une image de base pour tous vos conteneurs avec le serveur ssh installé. Ensuite, il vous suffit d'exécuter chaque conteneur mappant le port ssh (par défaut 22) à l'un des ports de l'hôte (serveur distant dans votre image), en utilisant -p <hostPort>:<containerPort>
. c'est à dire:
docker run -p 52022:22 container1
docker run -p 53022:22 container2
Ensuite, si les ports 52022 et 53022 de l'hôte sont accessibles de l'extérieur, vous pouvez directement ssh vers les conteneurs en utilisant l'adresse IP de l'hôte (serveur distant) en spécifiant le port dans ssh avec -p <port>
. C'est à dire:
ssh -p 52022 myuser@RemoteServer
-> SSH vers container1
ssh -p 53022 myuser@RemoteServer
-> SSH vers container2
Remarque : cette réponse fait la promotion d'un outil que j'ai écrit.
La réponse sélectionnée ici suggère d'installer un serveur SSH dans chaque image. Conceptuellement, ce n'est pas la bonne approche ( https://docs.docker.com/articles/dockerfile_best-practices/ ).
J'ai créé un serveur SSH conteneurisé que vous pouvez «coller» à n'importe quel conteneur en cours d'exécution. De cette façon, vous pouvez créer des compositions avec chaque conteneur. La seule exigence est que le conteneur ait bash.
L'exemple suivant démarrerait un serveur SSH exposé sur le port 2222 de la machine locale.
Pour plus de pointeurs et de documentation, voir: https://github.com/jeroenpeeters/docker-ssh
la source
Ces fichiers ouvriront avec succès sshd et exécuteront le service afin que vous puissiez ssh localement. (vous utilisez cyberduck n'est-ce pas?)
Dockerfile
supervisord.conf
pour construire / exécuter le démon de démarrage / sauter dans le shell.
la source
Je suppose que c'est possible. Il vous suffit d'installer un serveur SSH dans chaque conteneur et d'exposer un port sur l'hôte. Le principal inconvénient serait de maintenir / se souvenir de la cartographie du port au conteneur.
Cependant, je dois me demander pourquoi vous voudriez faire cela. SSH'ng dans les conteneurs devrait être suffisamment rare pour que ce ne soit pas un problème de ssh vers l'hôte, puis d'utiliser docker exec pour entrer dans le conteneur.
la source
Créer une image docker avec
openssh-server
préinstallé:Dockerfile
Construisez l'image en utilisant:
Exécutez un
test_sshd
conteneur:Ssh dans votre conteneur:
Source: https://docs.docker.com/engine/examples/running_ssh_service/#build-an-eg_sshd-image
la source
ssh root@localhost -p <ssh_host_port>
suivre les instructions ici