我能够在Chrome上呈现虚拟机的公共IP,但无法使用SSH连接它,引发错误:连接到主机xxx.xxx.xxx.xx端口22:连接被拒绝。当我在Portal上检查虚拟机时,没有为其分配安全组。这与此有关吗?我该如何解决?
答案 0 :(得分:2)
根据你的描述,如果我们想要ssh到docker镜像,我们应该在这个图像上安装SSH,并为这个图像打开端口,我将运行centos image例如:
docker pull centos:centos6
docker run -i -t centos:centos6
yum install openssh-server openssh-client(install ssh)
chkconfig sshd on
passwd(reset root password)
exit
docker commit 332b19ca916c centos/centosssh (commit this image)
docker run -i -t -d -p 50001:22 centos/centosssh (NAT for this container)
docker attach containerid (connect this container)
vi /etc/ssh/sshd_config (modify sshd config)
change UsePAM to no
service sshd start
然后在Azure NSG中打开端口50001。
这一次,我们可以使用SSH连接它:
更新
我使用CLI 2.0创建具有docker扩展名的VM,并将公共IP地址更改为 static ,并使用命令sudo docker run -d -p 80:80 nginx
在VM上运行容器。然后使用chrome来测试nginx,它工作正常,我可以使用公共IP 和 FQDN ssh到Azure VM。
nginx容器:
jason@MyDockerVM:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
61e10ebb6d22 nginx "nginx -g 'daemon ..." 4 minutes ago Up 4 minutes 0.0.0.0:80->80/tcp, 443/tcp kind_leavitt
尝试使用FQDN来ssh主机:
[c:\~]$ ssh jason@mypublicdns.eastus.cloudapp.azure.com
Host 'mypublicdns.eastus.cloudapp.azure.com' resolved to 52.186.123.151.
Connecting to 52.186.123.151:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
Welcome to Ubuntu 14.04.4 LTS (GNU/Linux 3.19.0-65-generic x86_64)
* Documentation: https://help.ubuntu.com/
System information as of Fri Apr 7 06:40:06 UTC 2017
System load: 0.31 Processes: 118
Usage of /: 5.8% of 28.80GB Users logged in: 1
Memory usage: 12% IP address for eth0: 10.0.0.4
Swap usage: 0% IP address for docker0: 172.17.0.1
尝试使用公共IP地址来ssh主机:
[c:\~]$ ssh jason@52.186.123.151
Connecting to 52.186.123.151:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
Welcome to Ubuntu 14.04.4 LTS (GNU/Linux 3.19.0-65-generic x86_64)
* Documentation: https://help.ubuntu.com/
System information as of Fri Apr 7 06:40:55 UTC 2017
System load: 0.21 Processes: 119
Usage of /: 5.8% of 28.80GB Users logged in: 1
Memory usage: 12% IP address for eth0: 10.0.0.4
Swap usage: 0% IP address for docker0: 172.17.0.1