Я хочу создать сеть контейнера, в которой один центральный контейнер должен иметь возможность подключаться по ssh ко всем другим контейнерам.Через центральный контейнер ssh можно изменить конфигурацию всего остального контейнера с помощью Ansible.Я знаю, что не рекомендуется использовать ssh из одного контейнера в другой, и мы можем использовать объем для обмена данными, но это не подходит для моего варианта использования.Я в состоянии выполнить ssh с хоста на контейнер, но не могу выполнить ssh из одного контейнера в другой.
Используемый файл Docker:
FROM ubuntu:16.04
RUN apt-get update
RUN apt-get install -y netcat ssh iputils-ping
EXPOSE 22
Образ, созданный в Dockerfile, называется ubuntu: v2
Затем, используя приведенные ниже команды, я создал два контейнера u1 и u2
docker run -p 22 --rm -ti --name u1 ubuntu:v2 bash
docker run -p 22 --rm -ti --name u2 ubuntu:v2 bash
В контейнере я запускаю команды ниже, чтобы создать пользователя в контейнере.Создайте пользователя u1 в контейнере u1 и u2 в контейнере u2
root@d0b0e44f7517:/# mkdir /var/run/sshd
root@d0b0e44f7517:/# chmod 0755 /var/run/sshd
root@d0b0e44f7517:/# /usr/sbin/sshd
root@d0b0e44f7517:/#
root@d0b0e44f7517:/# useradd --create-home --shell /bin/bash --groups sudo u2
root@d0b0e44f7517:/# passwd u2
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
root@d0b0e44f7517:/#
root@d0b0e44f7517:/#
Я создал два контейнера, оба одинаковые, за исключением того, что у одного есть пользователь u1, а у другого - пользователь u2, как показано выше.После этого я попытался выполнить ssh с хоста на контейнер с помощью команды ssh -X u2 @ localhost -p 32773 (32773 - это порт, который сопоставлен с 22 портом контейнера).Таким образом, ssh работает от хоста к контейнеру, но я не могу ssh из одного контейнера в другой контейнер. Так что вы можете помочь мне ssh из одного контейнера в другие контейнеры?