Как мне вывести приглашение для контейнера окон Docker?

Я пытаюсь возиться с контейнерами Microsoft для докеров и сталкиваюсь с проблемой, когда хочу фактически выполнять команды для своих контейнеров. Я сделал следующее, чтобы попасть сюда:

  1. Загрузите и установите бета-версию Docker Desktop для Windows (в частности, 1.12.3-beta30.1 (8711)), чтобы я мог «переключиться на контейнеры Windows».
  2. Перезагрузил мою машину
  3. Извлечены контейнеры microsoft/nanoserver и microsoft/windowsservercore.
  4. Поместите докер в путь
  5. Выполните шаги Hyperv отсюда: Контейнеры Windows в Windows 10

Теперь, когда я запускаю docker run -it microsoft/nanoserver cmd, powershell выглядит так: запуск образа докера

Он делает то же самое для ядра сервера или нано-сервера. На самом деле он никогда не запускал командную строку. Он просто висит здесь, и я не могу ничего напечатать. Вот дополнительная информация для моих изображений: описание образа докера. Итак, как я могу начать выполнение команд в моем контейнере?

ОБНОВЛЕНИЕ: я думаю, что моя настоящая проблема заключается в том, что я не могу подключиться к контейнеру. Я начал сначала и сделал следующее, чтобы понять это:

  1. Удалить все существующие контейнеры
  2. docker run microsoft/windowsservercore
  3. используйте docker ps, чтобы получить имя контейнера
  4. docker exec [container_name] cmd
    powershell показывает C:! Таким образом, команда выполняется в контейнере
  5. docker exec [container_name] ping google.com
    Он пингуется! хм

  6. docker exec -it [container_name] cmd Зависает. Никакая подсказка никогда не запускается.

  7. вырваться из висящей команды
  8. Посмотрите, что он делает
    Я вижу, что часть этого заключается в том, что он пытается присоединить
  9. docker attach [container_name]
    Ничего не происходит. Powershell просто зависает

person Hohohodown    schedule 29.11.2016    source источник
comment
Только что попробовал то же самое, хотя я запустил docker run -it microsoft/nanoserver powershell, запуск занял несколько секунд, но в конце концов я получил оболочку и смог запустить пару команд powershell, чтобы убедиться, что она работает.   -  person R0MANARMY    schedule 30.11.2016
comment
Вы предприняли какие-либо шаги, кроме тех, что указаны в той статье, на которую я дал ссылку? Этот хлам вонял до того, как Microsoft Windows появилась у вас? Используете ли вы последний контейнер и бета-версию?   -  person Hohohodown    schedule 30.11.2016
comment
Мне не нужно было помещать докер в путь, это сделал установщик. Просто запустил команду, которую я разместил, и все сработало. Как я уже сказал, для полного срабатывания потребовалось всего несколько секунд. Просто для проверки работоспособности вы переключили клиент Docker на использование контейнеров Windows вместо контейнеров Linux?   -  person R0MANARMY    schedule 30.11.2016
comment
Я в режиме клиента Windows.   -  person Hohohodown    schedule 30.11.2016
comment
Да, мой работал из коробки. Это же винда, может еще одна перезагрузка исправит?   -  person R0MANARMY    schedule 30.11.2016
comment
Я считаю, что проблема в том, что докер не может подключиться. Я обновил свой пост с моими шагами.   -  person Hohohodown    schedule 30.11.2016


Ответы (2)


Я обновился до последних образов Microsoft от 14.12.2016, и теперь все работает. Я могу docker exec -it [machine-name] powershell и получаю терминал, с которым можно взаимодействовать!

person Hohohodown    schedule 14.12.2016

Это проблема с версией Windows. Вы можете проверить свою версию Windows с помощью

Выполнить -> winver.exe

Вы должны обновить, чтобы построить номер. 14393.576 (последняя на данный момент), эта проблема будет решена

person Ali Kahoot    schedule 11.01.2017