2015-03-09 7 views
0

Я установил ssh-сервер, используя sudo apt-get install openssh-server на моем ubuntu: последний контейнер Docker, работающий на Mac OSX Yosemite. Я получил IP-адрес контейнера, используя boot2docker ip. Используя Network Utility, я могу проверить, что порт 22 открыт на этом IP-адресе. Однако я не могу ssh в файловую систему этого контейнера. Я не объяснил, что порт 22 должен быть экспортирован при запуске контейнера с docker start -i CONTAINER_NAME. Команда ssh -v localhost преуспевает на терминале контейнера, но когда я пытаюсь сделать это из терминала моего Mac, он говорит:SSH Setup на контейнере Docker

Соединение закрыто хххх

Я копирование содержимого sshd_config здесь: http://collabedit.com/a76d6

+0

[docker exec] (https://docs.docker.com/reference/commandline/cli/#exec) устраняет необходимость запуска ssh внутри контейнеров. Используйте это вместо этого. –

+0

@PeterLyons Я хочу, чтобы IDE на моем Mac могли редактировать код, находящийся в контейнере докера. Я не думаю, что докер-исполнитель позволил бы мне сделать это плавно? – ibp73

+0

Правильно, но лучшим подходом было бы использование тома для этого, поэтому и ваша IDE на вашем Mac, и код в докере могут напрямую обращаться к файлам через файловую систему. –

ответ

2

С boot2docker ip вы получаете IP-адрес Boot2Docker VM, а не IP-адрес своего контейнера ssh. Чтобы подключиться с вашего терминала Mac, вы должны открыть порт 22 вашего контейнера, а затем вы можете подключиться с помощью IP-адреса Boot2Docker VM с вашего сеанса Mac. I.E .: docker run -d -p 2222:22 CONTAINER_NAME, а затем подключиться через ssh с помощью портов BOOT2DOCKER_IP и 2222.

+0

Есть ли способ открыть порт на уже запущенном контейнере? – ibp73

+0

Вы не можете сделать это с помощью Docker, но вы можете сделать некоторые обходные пути. Проверьте этот вопрос, чтобы увидеть подробности http://stackoverflow.com/questions/19897743/exposing-a-port-on-a-live-docker-container –

Смежные вопросы