GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nastavit soukromý registr Docker na CentOS 7 / Ubuntu 16.04 / Fedora 26/25

Registr Docker je část aplikace, která vám umožňuje ukládat a distribuovat obrazy Dockeru interně (v rámci vaší organizace). Docker má dokonce veřejný registr, známý jako Docker Hub, kde lze zdarma ukládat obrázky Docker.

Problém veřejného registru Docker je však v tom, že obrázky, které do něj nahrajete, se stanou veřejnými. To není to, co vy nebo vaše organizace očekáváte, když jste pracovali dlouhé hodiny na budování image a to se zveřejňuje.

Chcete-li tuto překážku překonat, můžete pro svůj projekt soukromě nastavit registr Dockeru, takže pouze vy nebo vaše organizace do něj můžete ukládat obrázky Dockeru a distribuovat je mezi své spolupracovníky.

Zde v této technické příručce probereme, jak nastavit soukromý registr Docker na CentOS 7 / Ubuntu 16.04 / Fedora 26/ 25 .

Infrastruktura

Název hostitele IP adresa Operační systém Účel
registry.itzgeek.local 192.168.12.10 CentOS 7 Funguje jako server soukromého registru Docker
build.itzgeek.local 192.168.12.20 Ubuntu 16.04 Funguje jako uzel enginu Docker, kde vývojáři vytvoří obrazy Docker buď pomocí dockerfile nebo docker compose, a poté tyto obrazy nahrají na výše uvedený server soukromého registru docker.
deploy.itzgeek.local 192.168.12.30 Fedora 26/25 Funguje jako uzel modulu Docker, kde nasazujeme kontejnery stažené (pull) ze serveru soukromého registru.
Zde k demonstraci používám smíšené (OS) prostředí. Doporučuji používat pouze homogenní prostředí, které je snadné pro řešení vzniklých problémů.

Předpoklady

Nainstalujte Docker engine na všechny své uzly a ujistěte se, že služba Docker je v provozu.

ČTĚTE :Jak nainstalovat Docker CE na CentOS 7
ČTĚTE :Jak nainstalovat Docker CE na Ubuntu 16.04
ČTĚTE :Jak nainstalovat Docker CE na Fedoru 26/25

Nastavení soukromého registru Docker

Přihlaste se do uzlu registru a vytáhněte bitovou kopii registru z Docker Hub.

[root@registry ~]# docker pull registr

Vyberte, zda chcete používat prostý nebo zabezpečený registr Docker.

Prostý registr Docker

[root@registry ~]# docker run -dit -p 5000:5000 --name registry registry

Secure Docker Private Registry

Ve výchozím nastavení používá uzel Docker zabezpečené připojení přes TLS k nahrávání nebo stahování obrázků do nebo ze soukromého registru. Můžete použít certifikáty TLS podepsané certifikační autoritou nebo certifikáty s vlastním podpisem na serveru registru.

Zde použiji certifikát s vlastním podpisem pro zabezpečení registru Docker. Pomocí následujícího příkazu vytvoříme certifikát podepsaný svým držitelem.

[root@registry ~]# mkdir -p /certs[root@registry ~]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout /certs/ca.key -x509 -days 365 -out /certs /ca.crtGenerování 4096bitového soukromého klíče RSA............................................ ....++ ................................................. ................................................................... .......++zápis nového soukromého klíče do '/certs/ca.key'-----Budete požádáni o zadání informací, které budou začleněny do vaší žádosti o certifikát. Co se chystáte zadat je to, čemu se říká rozlišující jméno nebo DN. Existuje poměrně málo polí, ale některá můžete nechat prázdná. U některých polí bude výchozí hodnota. Pokud zadáte '.', pole zůstane prázdné.---- -Název země (2 písmenný kód) [XX]:Název státu nebo provincie (celé jméno) []:TNLocality Name (např. město) [Výchozí město]:CHNOrganization Name (např. společnost) [Výchozí společnost Ltd]:ITzGeekOrganizational Unit Jméno (např. sekce) []:ITCommon Name (např. vaše jméno nebo název hostitele vašeho serveru) []:registry.itzgeek.local E-mailová adresa []:[email protected]

Nahraďte „registry.itzgeek.local ” s FQDN vašeho registračního serveru.

Vygenerovaný certifikát „ca.crt“ musí být umístěn na všech vašich uzlech sestavení/nasazení, abyste tomuto certifikátu důvěřovali.

Spusťte kontejner registru Docker s informacemi o certifikátu.

[root@registry ~]# spuštění dockeru -d -p 5000:5000 --restart=always --name registry -v /certs:/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/ca.crt -e REGISTRY_HTTP_TLS_KEY=/ certs/ca.key registr

Nyní máte kontejner serveru registru s názvem „registr “ běžící na „registry.itzgeek.local “.

[root@registry ~]# docker ps

Výstup:

 Příkaz ID ID kontejneru vytvořený stavové porty názvy 8641FBC895F5 Registry "/EntryPoint.sh/E ..." 44 sekund před 41 sekundami 0,0.0,0:5000->5000/TCP Registry  

Firewall

Aby byl registr Docker dostupný mimo síť, museli byste otevřít následující porty na bráně firewall (na build.itzgeek.local /deploy.itzgeek.local )

Následující příkaz musíte spustit na serveru registru Docker (registry.itzgeek.local), v závislosti na vašem operačním systému.

Pokud je váš registr Docker na CentOS 7 / Fedora 26/25,

[root@registry ~]# firewall-cmd --permanent --add-port=5000/tcp[root@registry ~]# firewall-cmd --reload

Pokud je váš registr Docker na Ubuntu 16.04,

root@registry:~# ufw statusroot@registry:~# ufw allow 5000/tcproot@registry:~# ufw reload ufw enable

Nyní je registr Docker připraven k distribuci obrazů Docker.

Vytvořte a nahrajte obrázek Dockeru na server soukromého registru

Přihlaste se do uzlu enginu build Docker, např. „build.itzgeek.local

Vytvoření obrázku Docker

Pojďme vytvořit image Docker (pro přizpůsobený kontejner dockeru) pro nahrání na server soukromého registru. Obrazy kontejneru můžete sestavit/vytvořit třemi způsoby.

1. Zavázat se
2. Dockerfile
3. Docker Compose.

Vytvořte a udržujte svůj obrázek dockeru připravený k nahrání pomocí jedné z výše uvedených metod.

ČTĚTE :Jak vytvářet obrazy Docker pomocí Docker Commit
ČTĚTE :Jak vytvořit obrázky Docker pomocí DockerFile

Vytvořil jsem obrázek dockeru s názvem „mycentos:httpdv1.0 “ na „build.itzgeek.local “ a nyní jej nahrajeme na server soukromého registru.

root@build:~# ukotvitelných obrázků

Výstup:

Nyní přejmenujte obrázek dockeru něco jako registryserver:portnumber/image name:tag .

Pokud název obrázku neodpovídá danému formátu, příkaz docker push nebo pull se pokusí obrázek nahrát nebo stáhnout z veřejného registru, nikoli ze soukromého registru.

Chcete-li přejmenovat obrázek dockeru, použijte docker tag příkaz.

root@build:~# tag docker mycentos:httpdv1.0 registry.itzgeek.local:5000/mycentos:httpdv1.0

Zkontrolujte znovu seznam obrázků Docker.

Nahrát obrázek Docker

Závisí na režimu komunikace (Zabezpečené nebo Nezabezpečené ) z registru Docker, postupujte podle jedné z níže uvedených metod.

Nezabezpečený (prostý registr HTTP)

Upravte/vytvořte soubor „daemon.json “ v „/etc/docker/ ” adresář.

root@build:~# vi /etc/docker/daemon.json

Přidejte do něj následující obsah.

{  "insecure-registries" :["registry.itzgeek.local:5000"]}

Zabezpečené (s vlastním podpisem)

Zkopírujte certifikát „ca.crt “ ze serveru registru „registry.itzgeek.local “ na „/etc/docker/certs.d/registry.itzgeek.local:5000/ca.crt “ na „build.itzgeek.local “.

root@build:~# mkdir -p /etc/docker/certs.d/registry.itzgeek.local:5000/root@build:~# scp -pr [email protected]:/certs/ca .crt /etc/docker/certs.d/registry.itzgeek.local:5000/

V obou případech budete muset restartovat službu Docker engine.

root@build:~# systemctl restart docker

Nahrajte obraz dockeru na server soukromého registru pomocí následujícího příkazu.

root@build:~# docker push registry.itzgeek.local:5000/mycentos:httpdv1.0

Stáhněte a nasaďte image kontejneru Docker ze serveru soukromého registru

Přihlaste se do uzlu enginu nasazení Docker, např. „deploy.itzgeek.local “.

V závislosti na režimu komunikace (zabezpečený nebo nezabezpečený) registru Docker použijte některou z níže uvedených metod.

Nezabezpečený (prostý registr HTTP)

Upravte/vytvořte soubor „daemon.json “ v „/etc/docker/ ” adresář.

[root@deploy ~]# vi /etc/docker/daemon.json

Přidejte do něj následující obsah.

{  "insecure-registries" :["registry.itzgeek.local:5000"]}

Zabezpečené (s vlastním podpisem)

Zkopírujte certifikát „ca.crt “ ze serveru registru „registry.itzgeek.local “ na „/etc/docker/certs.d/registry.itzgeek.local:5000/ca.crt “ na „deploy.itzgeek.local “.

[root@deploy ~]# mkdir -p /etc/docker/certs.d/registry.itzgeek.local:5000/[root@deploy ~]# scp -pr [email protected]:/certs /ca.crt /etc/docker/certs.d/registry.itzgeek.local:5000/

V obou případech budete muset restartovat službu Docker engine.

[root@deploy ~]# systemctl restart docker

Stáhněte bitovou kopii dockeru na server soukromého registru pomocí následujícího příkazu.

[root@deploy ~]# docker pull registry.itzgeek.local:5000/mycentos:httpdv1.0

Nyní zkontrolujte seznam dostupných obrázků pomocí „obrázků dockeru ”příkaz

[root@deploy ~]# obrázky dockeru

Výstup:

Nyní je obraz Dockeru připraven k nasazení.

ČTĚTE :Jak nasadit kontejnery Docker – rozhraní příkazového řádku

To je vše.


Cent OS
  1. Jak nastavit soukromý registr dockerů na Rocky Linux 8

  2. Jak nakonfigurovat Autofs na CentOS 7 / Ubuntu 16.04 / Debian 9 / Fedora 27/26

  3. Jak nainstalovat docker na CentOS / RHEL / Fedora

  1. Jak nastavit a používat soukromý registr dockerů

  2. Jak nainstalovat Docker Compose na CentOS 7

  3. Jak nastavit SVN Server na CentOS, RHEL a Fedora

  1. Jak nainstalovat Docker na CentOS 8

  2. Jak nainstalovat Rancher na CentOS 7

  3. Jak nastavit soukromý registr dockerů v Kubernetes (k8s)