没有为test_sshd发布公共端口“22 / tcp”

我试图执行此操作:

https://hub.docker.com/r/rastasheep/ubuntu-sshd/

即,我运行:

sudo docker run -d -P --name test_sshd rastasheep/ubuntu-sshd:16.04 

然后

 sudo docker port test_sshd 22 

我可以看到像这样的东西:

 0.0.0.0:49154 

我可以运行:

 ssh root@localhost -p 49154 

但是,只要我重新启动电脑,我看到这个:

 sudo docker port test_sshd 22 Error: No public port '22/tcp' published for test_sshd 

你能在这里给我一个踢吗?

选项-Pdynamic地随机绑定一个端口,这就是为什么你需要另一个步骤来使用docker port关联一个docker port 。 我会用一个免费的静态端口来访问这个容器的ssh端口:

 docker container run -d -p 2222:22 --name test_sshd rastasheep/ubuntu-sshd:16.04 ssh root@localhost -p 2222 

dockerd重新启动时,此端口设置仍然存在。