无法通过 ssh 连接到 docker 容器

无法通过 ssh 连接到 docker 容器

我在服务器上运行 docker,并通过运行部署了一个容器:

docker run -d -p docker_server_ip:3001:22 --name test14 -ti rhel_7_4

运行时docker ps我可以看到该实例。

另外,我看到 Docker 服务器正在监听:

netstat -ntalp | grep 3001
tcp        0      0 docker_server_ip:3001       0.0.0.0:*               LISTEN      10362/docker-proxy

如果我尝试 ssh 到这个容器,我会收到“连接被拒绝”的消息(linux iptables 已关闭)。

ssh root@docker_server_ip -p 3001 - “ssh:连接到主机 docker_server_ip 端口 3001:连接被拒绝”

我错过了什么?

答案1

不建议在容器内运行 SSH 服务器,请参阅原因和最佳实践这篇博文

例如,要从 Docker 复制文件,请使用:

docker cp {container_name}:{file_path} {target_file_path OR target_dir_ended_with_slash}

但是,如果你确实需要 ssh(例如,容器在远程主机上运行),请确保容器运行sshd,下面是我这样做的方式:

  • 安装 sshd 和 vi:sudo apt install -y openssh-server vim
  • 在sshd_config中设置PermitRootLogin yessudo vi /etc/ssh/sshd_config
  • 重启sshd服务:sudo service ssh restart
  • 给root用户添加密码:sudo passwd

然后你就能够使用 SSH 连接了。

相关内容