6

Używamy rejestru Docker wewnątrz naszego AWS AWS, który nie jest dostępny zewnętrznie. Chcemy mieć możliwość uruchamiania zadań w ECS z tego rejestru, jednak widzimy, że usługa jest zawsze w stanie PENDING, ponieważ demon Docker nie może uzyskać dostępu do rejestru.Jak korzystać z niezabezpieczonych rejestrów dokerów w usłudze Amazon EC2 Container Service (ECS)?

znalazłem pewnego rodzaju obejście przez zmianę danych użytkownika konfiguracji uruchomić, ale nie czuję, że robię to najlepszy sposób:

#!/bin/bash 
echo ECS_CLUSTER=MY_CLUSTER_NAME >> /etc/ecs/ecs.config 
echo OPTIONS=--insecure-registry=insecure.registry.hostname:5000 > /etc/sysconfig/docker 
service docker restart 
docker start ecs-agent 

Działa to doskonale, i widzę mój zadanie działa zgodnie z oczekiwaniami. Po prostu nie sądzę, że jest to najlepszy sposób na zrobienie tego.

AWS skierował mnie w stronę artykułu this, który omawia uwierzytelnianie z prywatnymi rejestrami, ale nie zamierzam uwierzytelniać, tylko po to, aby Docker zignorował fakt, że używam niezabezpieczonego (tj. Nie HTTPS) rejestru.

Czy ktoś ma lepsze rozwiązanie?

Dzięki

Odpowiedz

7

Rozmawiałem z AWS i dalej mieć następujące rozwiązanie:

można zrobić coś podobnego opcji zestaw Döcker (w tym --insecure-registry) ze skryptu dla użytkownika danych, które wykonuje przy starcie. Na przykład, --insecure-registry można ustawić za pomocą skryptu tak:

#cloud-config 
bootcmd: 
- cloud-init-per instance $(echo "OPTIONS=\"--insecure-registry=hostname:5000\"" > /etc/sysconfig/docker) 

W ten sposób unika się poprzednie rozwiązanie nie mając restart Döcker.

Jeśli chodzi o niezabezpieczoną metodę, jeśli używamy samopodpisanego certyfikatu, możemy to wykorzystać, dodając certyfikat do magazynu zaufanych certyfikatów CA lub do specjalnego magazynu zaufanych certyfikatów Docker.

Na Amazon Linux AMI i ECS zoptymalizowane ami, sklep zaufanie System CA albo znajdujący się /usr/share/pki/ca-trust-source lub /usr/share/pki/ca-trust-source/anchors (w zależności od formatu, patrz /usr/share/pki/ca-trust-source/README szczegółów) i trzeba będzie uruchomić komendę update-ca-trust po dodaniu certyfikat. Dokumentacja Docker jest na niepewnych rejestrów zawiera więcej szczegółów na ten temat:

https://docs.docker.com/reference/commandline/cli/#insecure-registries https://github.com/docker/docker/blob/master/docs/sources/articles/certificates.md

Mam nadzieję, że pomaga innym ludziom

+0

Może głupie pytanie, ale jak ty przechodząc skrypt chmury startowy do beanstalk aplikacja? –

+3

Musisz dostosować "Dane użytkownika" do konfiguracji uruchamiania w konsoli EC2. W rzeczywistości nie możesz edytować konfiguracji uruchamiania, musisz utworzyć kopię i "Edytuj szczegóły". Tam kliknij menu "Szczegóły zaawansowane", a zobaczysz dane wejściowe "Dane użytkownika". Edytuj go tam, zapisz konfigurację, a następnie przejdź do "Auto Scaling Group", edytuj kartę "Szczegóły" i wybierz nową "Uruchom konfigurację" na górze –

+0

Próbuję użyć niepewnego serwera i skorzystam z opcji okna dokowanego , ale mam problem z Beanstalk nadpisując tę ​​zmianę OPTION. Konfiguracja dockera zostanie zmodyfikowana, ale na tym kończę: 'OPTIONS =" - niezabezpieczony rejestr = ****. Com: 5000 "' '# Elastic Beanstalk' ' jeśli [-f/etc/elasticbeanstalk/set-ulimit.sh]; następnie ' ' \t./etc/elasticbeanstalk/set-ulimit.sh' 'fi' ' # już zadbał o ustawieniach ULimit, ustawienie tych dwóch zmiennych blank' '# więc skrypt init.d nie zastępują naszą changes' ' options = '' DAEMON_MAXFILES = ' ' other_args = "- r = false" ' Jakieś pomysły na modyfikację w późniejszym czasie? – JSous