Windows 7 - Настройка панели инструментов докера за прокси

Согласно моей корпоративной политике, мы используем Windows 7 с привилегированным доступом (подмножество прав администратора) на машине.

Однако я установил панель инструментов Docker, когда пришло время извлекать образы из центра Docker компаний Artifactory, у меня возникали проблемы из-за HTTPS и прокси.

1 ответ

Я наконец-то понял, как правильно настроить панель инструментов Docker на Windows 7 за корпоративным прокси-сервером с сертификатами HTTPS.

Ниже приведены шаги

  1. Установить Docker Toolbox
  2. После установки перейдите в C:/Users//. Docker / machine / machine / default и откройте config.json. Если у вас нет этой папки, пожалуйста, откройте "Терминал быстрого запуска Docker" со своего рабочего стола, чтобы создать виртуальную коробочную докер-машину для себя.
  3. Добавьте следующие строки под
{
    "HostOptions": {
        ...
        "EngineOptions": {
            ...
            "Env": [
                "HTTP_PROXY=http://<username>:<pwd>@<host>:<port>",
                "HTTPS_PROXY=http://<username>:<pwd>@<host>:<port>",
                "NO_PROXY=<docker-machine ip>"
            ],
        }
    }
 }

Обратите внимание на http в HTTPS_PROXY. 4. После выполнения вышеуказанного шага вам необходимо установить сертификаты компании. 5. Получить набор корпоративных корневых сертификатов, которые должны быть установлены в вашем корпоративно настроенном браузере. В Chrome вы можете перейти в "Настройки", нажать "Показать дополнительные настройки" и прокрутить вниз до HTTPS/SSL, где вы можете выбрать "Управление сертификатами". Моя организация поместила их в доверенные корневые центры сертификации и назвала их в честь организации. Экспортируйте каждый (у меня их два), по одному за раз, выбирая формат DER.

  1. Как только вы сохранили их в известном месте, вы захотите преобразовать их в формат PEM. Самым простым способом, который я нашел для этого, было выполнение команды openssl.exe[1] из терминала быстрого запуска Docker.

openssl x509 -inform der -in Certificate.cer -out Certificate.pem

  1. Получив файлы.pem, вы захотите скопировать их в папку, к которой у вашего компьютера Docker есть доступ. Я сделал каталог в c:\Users\my.username\certs и скопировал их туда.

  2. Этот шаг не может быть строго необходимым, но это то, что я сделал, и это работает. Вы захотите скопировать эти сертификаты в раздел boot2docker, который является постоянным. Я подключаюсь к моей машине по умолчанию, и это то, что вам нужно сделать для шага 5.

MINGW64: $ docker-machine ssh по умолчанию

docker@default:~$ sudo -s root@default:/home/docker# mkdir /var/lib/boot2docker/certs root@default:/home/docker# cp /c/Users/my.username/certs/*.pem /var/lib/boot2docker/certs/

Теперь пришло время написать скрипт bootlocal.sh, который будет копировать сертификаты в нужное место при каждом запуске системы.[2] Если вы этого еще не сделали, откройте SSH-соединение с машиной, выполнив Шаг 4.

Нажмите /var/lib/boot2docker/bootlocal.sh && chmod +x /var/lib/boot2docker/bootlocal.sh vi /var/lib/boot2docker/bootlocal.sh Вставьте следующее и сохраните файл:

! / Bin / ш

mkdir -p /etc/docker/certs.d && cp certs/certificate.pem /etc/docker/certs.d

Перезагрузите компьютер либо с помощью команды перезагрузки изнутри компьютера, либо с помощью команды docker-machine с терминала Docker:

перезапуск докер-машины по умолчанию

Теперь вы должны быть в состоянии запустить "Привет-мир" и другие. Надеюсь, это поможет.

Ссылка: Docker в Windows (Boot2Docker) - сертификат подписан неизвестной ошибкой органа

Недавно я столкнулся с той же проблемой и смог решить проблему с помощью следующих шагов. Как указано в официальной документации докера

  1. Сначала остановите и удалите докер-машину по умолчанию, если она уже создана

        docker-machine stop default
        docker-machine rm default
    

    где 'default' - это имя по умолчанию docker-machine.

    1. После удаления создайте docker-machine с настройкой прокси:

      docker-machine создать -d virtualbox --engine-env HTTP_PROXY = http://example.com:8080/ --engine-env HTTPS_PROXY = https://example.com:8080/ --engine-env NO_PROXY=example2.com по умолчанию

Ссылка: https://docs.docker.com/v17.12/machine/reference/create/

Это решение прекрасно работает для меня.

Я решил эту проблему, добавив обратную косую черту ("/") в конец URL-адреса прокси в настройках прокси в файле config.json.

Другие вопросы по тегам