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 []:itzgeek.web@gmail.com

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 root@registry.itzgeek.local:/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 root@registry.itzgeek.local:/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)