SSH를 통해 wsl2 docker 컨테이너를 연결하는 방법

SSH를 통해 wsl2 docker 컨테이너를 연결하는 방법

간단히 말해서, 저는 앤서블을 배우고 있으며 이를 위해 플레이북을 테스트하기 위해 몇 가지 도커 머신이 필요합니다. 저는 이미 구성하고 연결하고 일부 플레이북을 테스트한 라즈베리 및 하이퍼-V 머신을 가지고 있습니다. 하지만 다른 머신을 테스트해야 합니다. 머신과 저는 다음 명령을 사용하여 docker에서 이 새로운 머신 중 일부를 만들었습니다.

docker network create ansible --subnet=172.18.0.0/16

docker run --detach --privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:rw --ip 172.18.0.2 --cgroupns=host --name=debian1 --network=ansible apasoft/debian11-ansible 
docker run --detach --privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:rw --ip 172.18.0.3 --cgroupns=host --name=debian2 --network=ansible apasoft/debian11-ansible 
docker run --detach --privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:rw --ip 172.18.0.5 --cgroupns=host --name=rocky1 --network=ansible apasoft/rocky9-ansible 
docker run --detach --privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:rw --ip 172.18.0.6 --cgroupns=host --name=rocky2 --network=ansible apasoft/rocky9-ansible 
docker run --detach --privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:rw --ip 172.18.0.8 --cgroupns=host --name=ubuntu1 --network=ansible apasoft/ubuntu22-ansible 
docker run --detach --privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:rw --ip 172.18.0.10 --cgroupns=host --name=mysql1 --network=ansible apasoft/debian11-ansible 
docker run --detach --privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:rw --ip 172.18.0.11 --cgroupns=host --name=mysql2 --network=ansible apasoft/debian11-ansible
docker run --detach --privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:rw --ip 172.18.0.12 --cgroupns=host --name=tomcat1 --network=ansible apasoft/debian11-ansible 
docker run --detach --privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:rw --ip 172.18.0.13 --cgroupns=host --name=tomcat2 --network=ansible apasoft/debian11-ansible

을 사용하여 연결할 수 있지만 docker container exec -it [machine_name] /bin/bashSSH를 통해 연결할 수 없으며 핑도 할 수 없습니다.

컨테이너의 sshd_config에는 다음 구성이 활성화되어 있습니다.

PermitRootLogin yes
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding yes
PrintMotd no
AcceptEnv LANG LC_*
Subsystem       sftp    /usr/lib/openssh/sftp-server

나는 이것에 대해 친절하게 지식을 요청합니다. 나는 이것으로 거의 이틀 동안 어려움을 겪었습니다.

미리 감사드립니다.

답변1

몇 가지 매개변수를 확인해야 합니다.

  • Docker 내부에서 SSH 서비스가 실행되고 있습니까?

ss -laputen | grep ssh #this inside docker

  • 호스트/도커 컨텍스트에서 네트워크 및 방화벽이 구성되는 방법:

https://dockerlabs.collabnix.com/networking/A1-network-basics.html

https://forums.docker.com/t/docker-firewall-rules-how-to-change-or-disable/30398

그러면 연결할 수 있어야합니다.

관련 정보