W systemie CoreOS skonfiguruj własny rejestr Docker

Wszyscy znamy i kochamy Docker, platformę do tworzenia, zarządzania i dystrybucji kontenerów aplikacji na wielu komputerach. Docker Inc. zapewnia usługę hostowania kontenerów typu open source do pobrania (lub ściągnięcia) jak repozytorium git znane jako „Rejestr Docker”. Pomyśl o tym jak o GitHub dla kontenerów Docker.

Ale co, jeśli chcesz hostować własny rejestr oddzielony od publicznego? Cóż, Docker Inc. otworzył źródło aplikacji rejestru na GitHub.

Ten samouczek przeprowadzi Cię przez proces konfigurowania prywatnego rejestru Docker przy użyciu CoreOS na nowym VPS.

CoreOS + Docker

Nie będziemy spędzać mnóstwo czasu zastanawiając się dokładnie, co mogą zrobić Docker i CoreOS, ponieważ jest to poza zakresem tego samouczka. Zasadniczo CoreOS jest przeznaczony dla ogromnych klastrów serwerów, jest mały, szybki i automatycznie otrzymuje regularne aktualizacje zabezpieczeń. Jego główny system plików jest również tylko do odczytu, co oznacza, że ​​musisz używać Dockera, aby uruchamiać wszelkiego rodzaju oprogramowanie, które nie jest dołączone do instalacji podstawowej.

To sprawia, że ​​Core OS jest idealnym systemem hosta dla Docker!

Ciągnięcie i uruchamianie najnowszego rejestru

Firma Docker Inc. dostarczyła Rejestr jako obraz najwyższego poziomu, co oznacza, że ​​możemy go ściągnąć w prosty sposób:

docker pull registry

Może to potrwać kilka minut w zależności od szybkości połączenia.

Zaletą bycia obrazem najwyższego poziomu jest także regularne wsparcie i aktualizacje.

Teraz przetestujmy rejestr. Możemy utworzyć nowy kontener za pomocą obrazu rejestru:

docker run -p 5000:5000 -d --name=basic_registry registry

Dla tych, którzy nie używali zbyt często Dockera, -pflaga oznacza PORT, że udostępniamy port 5000 z kontenera na port hosta 5000.

-dFlaga oznacza daemon, spowoduje to pojemnik do uruchomienia w tle, a nie drukować wyjście do bieżącej sesji SSH, chcemy również nazwać ten podstawowy pojemnik testowy używając --nameopcji, dzięki czemu możemy łatwo zarządzać później.

Upewnij się, że podstawowy kontener rejestru działa przy użyciu docker ps. Dane wyjściowe powinny wyglądać podobnie do:

CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                    NAMES
edfb54e4a8c4        registry:0.8.1      "/bin/sh -c 'exec do   7 seconds ago       Up 6 seconds        0.0.0.0:5000->5000/tcp   basic_registry

Odwiedź też http://YOUR_IP:5000swoją przeglądarkę internetową i powinieneś otrzymać następujący komunikat:

"docker-registry server (dev) (v0.8.1)"

Zwróć uwagę na słowo devw nawiasie. Oznacza to, że na serwerze aktualnie działa konfiguracja deweloperska. Wkrótce omówimy więcej konfiguracji.

Masz teraz swój własny (bardzo podstawowy) rejestr kontenerów! Ale jeszcze nie skończyliśmy.

Może chcesz zachować prywatność przed wścibskimi oczami, a może przechowywać zdjęcia na Amazon S3 zamiast lokalnego magazynu. Omówmy różne opcje konfiguracji w następnej sekcji.

Zanim przejdziemy dalej, zabijmy pojemnik testowy, abyśmy nie wpadli na porty w konflikcie.

docker kill basic_registry

Konfiguracja rejestru

Istnieją dwa sposoby przekazania konfiguracji do rejestru Docker. Jednym ze sposobów jest przekazanie zmiennych środowiskowych do nowego kontenera, a drugim - dodanie pliku konfiguracyjnego.

Oto kilka typowych opcji konfiguracji, których będziemy używać:

  • loglevel- Minimalna ilość informacji do zalogowania do konsoli. Domyślnie jest info.
  • standalone- Czy ten rejestr powinien działać samodzielnie? (Nigdy nie sprawdza rejestru publicznego.) Domyślnie jest true.
  • index_endpoint- Jeśli nie jest samodzielny, jaki inny indeks będziemy sprawdzać? Domyślnie index.docker.io.
  • cacheoraz cache_lru- Opcje dotyczące używania pamięci podręcznej Redis dla małych plików, zajmiemy się tym później.
  • storage- Jakiego zaplecza magazynu należy użyć dla tego serwera? (W tym samouczku będziemy używać lokalnych).
  • storage_path - Jeśli korzystasz z pamięci lokalnej, w jakim katalogu powinniśmy przechowywać pliki?

Zanim zaczniemy pracę z konfiguracją, potrzebujemy pliku podstawowego do pracy. Plik z repozytorium rejestru Docker na GitHub będzie działał dobrze:

wget https://raw.githubusercontent.com/docker/docker-registry/0.8/config/config_sample.yml

Plik powinien zostać pomyślnie zapisany z danymi wyjściowymi, takimi jak:

2014-09-14 14:09:01 (156 MB/s) - 'config_sample.yml' saved [5384/5384]

Świetny! Teraz możemy zmodyfikować ten plik, aby dopasować go do naszych potrzeb.

Jedynym edytorem tekstowym, który jest dostarczany z Core OS, jest vim, ale nie martw się, jeśli nigdy wcześniej go nie używałeś, wyjaśni to krok po kroku, co edytować i jak to zrobić.

vim config_sample.yml

Po otwarciu pliku naciśnij Ii w prawym dolnym rogu powinien zostać wyświetlony: -- INSERT --tryb wstawiania. Przewiń do samego końca pliku za pomocą klawiszy strzałek, powinieneś zobaczyć sekcję oznaczoną etykietą prod.

Zmienimy dwie linie, zmiany są poniżej

prod:
    <<: *local
    storage_path: _env:STORAGE_PATH:/data

To, co zrobiliśmy, to zmiana prodkonfiguracji tak, aby pochodziła z localsekcji zamiast z s3sekcji. Następnie nadpisaliśmy, storage_pathaby użyć ścieżki /datawewnątrz nowego kontenera.

Po potwierdzeniu, że wszystkie zmiany są poprawne, naciśnij, ESCaby wyjść z trybu wstawiania i typu :wq(oznacza to, że zapisz zmiany w pliku i wyjdź z vima.)

Teraz zmieńmy nazwę pliku na just config.yml

mv config_sample.yml config.yml

Pamięć podręczna Redis (opcjonalnie)

Jeśli chcesz użyć narzędzia redis do przyspieszenia rejestru kontenerów, wystarczy pobrać nowy kontener z rejestru publicznego i dodać kilka dodatkowych linii konfiguracji.

Najpierw narysuj obraz Redis na najwyższym poziomie:

docker pull redis

Po pomyślnym pobraniu obrazu możemy go uruchomić i nazwać tak, jak w przypadku rejestru testowego:

docker run -d --name registry-redis redis

Ponieważ redis jest w pamięci, nie musimy go konfigurować, ponieważ w późniejszych krokach połączymy go z kontenerem rejestru.

Ponownie upewnij się, że działa, używając docker ps:

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
54f65641eccf        redis:2.8           "redis-server"      2 seconds ago       Up 1 seconds        6379/tcp            registry-redis

Teraz ponownie otworzyć config.ymlsię vimi trybu Insert, tak jak po raz pierwszy pod redakcją go.

Dodaj następujące wiersze poniżej prodsekcji, pamiętając o prawidłowym wcięciu. Tym razem dodajemy tylko cachei cache_lru.

cache:
    host: _env:REDIS_PORT_6379_TCP_ADDR
    port: _env:REDIS_PORT_6379_TCP_PORT
    db: 0

cache_lru:
    host: _env:REDIS_PORT_6379_TCP_ADDR
    port: _env:REDIS_PORT_6379_TCP_PORT
    db: 1

Zmienne środowiskowe REDIS_PORT_6379_TCP_ADDRi REDIS_PORT_6379_TCP_PORTsą przekazywane do rejestru pojemnika na wiązanie z pojemnikiem Redis.

Dzięki temu masz teraz skonfigurowany kontener Redis, który będzie współpracował z kontenerem rejestru. Teraz budowanie rejestru!

Budowanie kontenera

Przygotowaliśmy całą konfigurację i jesteśmy gotowi, teraz musimy zbudować rzeczywisty kontener rejestru.

Odpal, vim Dockerfileaby utworzyć nowy plik Docker. Wejdź w tryb wstawiania i postępuj zgodnie z poniższymi zmianami.

FROM registry:latest

# Add the custom configuration file we made 
ADD ./config.yml /docker-registry/config/config.yml

# Create the data directory
RUN mkdir /data

# Set the configuration file to config.yml
env DOCKER_REGISTRY_CONFIG /docker-registry/config/config.yml

# Make sure we use the prod configuration settings 
env SETTINGS_FLAVOR prod

To, co zrobiliśmy powyżej, zasadniczo rozszerza obraz rejestru, aby używał naszego pliku konfiguracyjnego i ustawień. Plik Docker to zestaw instrukcji kompilacji, które Docker może czytać i budować. Jeśli chcesz dowiedzieć się więcej o plikach Docker i ich składni, zapoznaj się z oficjalną dokumentacją witryny Docker.

Następnie musimy zbudować pojemnik do użytku.

docker build -t my_registry .


Sending build context to Docker daemon 13.82 kB
Sending build context to Docker daemon 
Step 0 : FROM registry
 ---> e42d15ec8417
Step 1 : ADD ./config.yml /docker-registry/config/config.yml
 ---> 4339f026d459
Removing intermediate container 2d5138fbcd34
Step 2 : RUN mkdir /data
 ---> Running in a090f0bdbfd1
 ---> 8eb27ba6e12a
Removing intermediate container a090f0bdbfd1
Step 3 : env DOCKER_REGISTRY_CONFIG /docker-registry/config/config.yml
 ---> Running in 565b5bfb2b22
 ---> 914462e46dc0
Removing intermediate container 565b5bfb2b22
Step 4 : env SETTINGS_FLAVOR prod
 ---> Running in 31a92847b851
 ---> b5949575c374
Removing intermediate container 31a92847b851
Successfully built b5949575c374

Teraz jesteśmy gotowi do uruchomienia!

Zróbmy katalog w naszym systemie hosta, aby zamontować go w kontenerze jako /datawolumin.

mkdir registry-data

Teraz możemy wykręcić nowy pojemnik. Jeśli planujesz używać pamięci podręcznej Redis, użyj drugiego polecenia poniżej.

# For a non-Redis cache registry
docker run -d -p 5000:5000 -v /home/core/registry-data:/data --name=private_reg my_registry

# For a Redis cached registry (Must have followed Redis Caching section above)
docker run -d -p 5000:5000 -v /home/core/registry-data:/data --name=private_reg --link registry-redis:redis my_registry

Aby upewnić się, że serwer działa poprawnie, odwiedź stronę http://YOUR_IP:5000. Zobaczysz następujący komunikat:

"docker-registry server (prod) (v0.8.1)"

Zauważ, że (prod)nasze zmiany konfiguracji zakończyły się powodzeniem!

Skonfiguruj lokalnego klienta Docker

Teraz, gdy mamy już własny rejestr, chcemy, aby klient Docker na naszych komputerach lokalnych zaczął go używać. Zwykle używasz polecenia: docker loginale do naszego użytku musimy dodać jeszcze jeden argument do polecenia logowania:

docker login YOUR_IP:5000

Wprowadź nazwę użytkownika i hasło (pomyśl o tym jak założenie nowego konta) i zignoruj ​​wiadomość, że musisz ją aktywować.

Następnie wyciągnijmy obraz akcji i pchnijmy go do naszego własnego repozytorium.

# Pull the busybox image from the public registry
docker pull busybox

# Tag it with our IP/URL
docker tag busybox YOUR_IP:5000/busybox

# Push it to our newly made registry
docker push YOUR_IP:5000/busybox

Jeśli wszystko popycha poprawnie, końcowy komunikat powinien wyglądać następująco:

Pushing tag for rev [a9eb17255234] on 

Gratulacje! Masz skonfigurowane własne repozytorium dokerów.

Co dalej?

Oto kilka pomysłów na ulepszenie nowego rejestru prywatnego:

  • Odwróć proxy za pomocą Nginx lub Apache, aby umieścić przed nim dodatkowe zabezpieczenia, takie jak proste uwierzytelnianie HTTP.
  • Uzyskaj domenę dla swojego serwera i skonfiguruj ją, aby uzyskać dostęp do rejestru za pomocą: register.mysite.com
  • Kup (lub samopodpisaj) certyfikat SSL, aby zwiększyć ochronę, jeśli pojemniki zawierają poufne informacje.


Leave a Comment

Wdróż Kubernetes za pomocą Kubeadm na CentOS 7

Wdróż Kubernetes za pomocą Kubeadm na CentOS 7

Omówienie Ten artykuł ma na celu pomóc ci w szybkim uruchomieniu klastra Kubernetes z kubeadm. W tym przewodniku zostaną wdrożone dwa serwery

Zainstaluj Docker CE na Ubuntu 18.04

Zainstaluj Docker CE na Ubuntu 18.04

Wprowadzenie Docker to aplikacja, która pozwala nam wdrażać programy działające jako kontenery. Został napisany w popularnym języku programowania Go

Instalowanie Dockera na CentOS 7

Instalowanie Dockera na CentOS 7

Używasz innego systemu? Docker to aplikacja umożliwiająca wdrażanie oprogramowania w wirtualnych kontenerach. Został napisany w programie Go

Zainstaluj Rancher na Ubuntu 16.04

Zainstaluj Rancher na Ubuntu 16.04

Używasz innego systemu? Wprowadzenie Rancher to platforma typu open source do uruchamiania kontenerów i budowania prywatnej usługi kontenerowej. Ranczer jest podstawą

Instalowanie docker-compose na CoreOS

Instalowanie docker-compose na CoreOS

W tym artykule wyjaśniono, jak zainstalować program dokujący-komponuj w CoreOS. W CoreOS folder / usr / jest niezmienny, więc standardowa ścieżka / usr / local / bin jest niedostępna

Zainstaluj Rancher na CentOS 7

Zainstaluj Rancher na CentOS 7

Używasz innego systemu? Wprowadzenie Rancher to platforma typu open source do uruchamiania kontenerów i budowania prywatnej usługi kontenerowej. Ranczer jest podstawą

Sentry konfiguracji przez Docker na Ubuntu 16.04

Sentry konfiguracji przez Docker na Ubuntu 16.04

Używasz innego systemu? Wprowadzenie Sentry to rozwiązanie typu open source do śledzenia błędów. Sentry śledzi wyjątki i inne przydatne wiadomości

Jak zainstalować Harbour na CentOS 7

Jak zainstalować Harbour na CentOS 7

Harbor to serwer rejestru klasy korporacyjnej typu open source, który przechowuje i dystrybuuje obrazy Docker. Harbor rozszerza dystrybucję Docker typu open source b

Sticky Session With Docker Swarm (CE) na CentOS 7

Sticky Session With Docker Swarm (CE) na CentOS 7

Używasz innego systemu? Wprowadzenie Docker Swarm zamienia poszczególne serwery w klaster komputerów, ułatwiając skalowanie, wysoką dostępność i

Dwa graficzne narzędzia do zarządzania Docker: DockerUI i Shipyard

Dwa graficzne narzędzia do zarządzania Docker: DockerUI i Shipyard

Za pomocą aplikacji Vultr Docker można łatwo wdrożyć Docker na instancji serwera Vultr. W międzyczasie możesz ułatwić zadanie zarządzania Docker

Zainstaluj Rancher Server na RancherOS

Zainstaluj Rancher Server na RancherOS

Przegląd RancherOS to niezwykle lekki system operacyjny (tylko około 60 MB), który uruchamia demona Docker systemowego jako PID 0 do uruchamiania usług systemowych

Bezpiecznie wdrażaj i zarządzaj kontenerami LXC na Ubuntu 14.04

Bezpiecznie wdrażaj i zarządzaj kontenerami LXC na Ubuntu 14.04

Kontenery LXC (kontenery Linux) to funkcja systemu operacyjnego w systemie Linux, której można używać do uruchamiania wielu izolowanych systemów Linux na jednym hoście. Thes

Wdróż aplikację PHP za pomocą Docker-compose

Wdróż aplikację PHP za pomocą Docker-compose

Aplikacje PHP zwykle składają się z serwera WWW, systemu relacyjnej bazy danych i samego tłumacza języka. W tym samouczku będziemy korzystać z dźwigni

Rozpoczęcie pracy z Kubernetes na CentOS 7

Rozpoczęcie pracy z Kubernetes na CentOS 7

Kubernetes to platforma open source opracowana przez Google do zarządzania aplikacjami kontenerowymi w klastrze serwerów. Opiera się na dekadzie i

Jak korzystać z Docker: Tworzenie pierwszego kontenera Docker

Jak korzystać z Docker: Tworzenie pierwszego kontenera Docker

W tym samouczku wyjaśniono podstawy rozpoczęcia korzystania z Docker. Zakładam, że masz już zainstalowany Docker. Kroki w tym samouczku będą działać na

Bilans obciążenia z dokerem

Bilans obciążenia z dokerem

Podczas uruchamiania aplikacji sieciowej zwykle chcesz maksymalnie wykorzystać zasoby bez konieczności konwertowania oprogramowania na wielowątkowość

Rozpocznij pracę z SQL Server 2017 (MS-SQL) na CentOS 7 With Docker

Rozpocznij pracę z SQL Server 2017 (MS-SQL) na CentOS 7 With Docker

Wymagania wstępne Silnik Docker 1.8+. Minimum 4 GB miejsca na dysku. Minimum 4 GB pamięci RAM. Krok 1. Zainstaluj Docker Aby zainstalować SQL-Server, Docker mus

Instalowanie Docker CE na Debianie 9

Instalowanie Docker CE na Debianie 9

Używasz innego systemu? Wprowadzenie Docker to aplikacja umożliwiająca wdrażanie oprogramowania w wirtualnych kontenerach. Został napisany w G

Instalowanie Dockera na Ubuntu 14.04

Instalowanie Dockera na Ubuntu 14.04

Używasz innego systemu? Docker to aplikacja umożliwiająca wdrażanie programów uruchamianych jako kontenery. Został napisany w popularnym programie Go

Funkcjonalności warstw architektury referencyjnej Big Data

Funkcjonalności warstw architektury referencyjnej Big Data

Przeczytaj blog, aby w najprostszy sposób poznać różne warstwy w architekturze Big Data i ich funkcjonalności.

Rewolucyjne wynalazki Google, które ułatwią Twoje życie.

Rewolucyjne wynalazki Google, które ułatwią Twoje życie.

Chcesz zobaczyć rewolucyjne wynalazki Google i jak te wynalazki zmieniły życie każdego człowieka dzisiaj? Następnie czytaj na blogu, aby zobaczyć wynalazki Google.

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

Pozostań w kontakcie dzięki aplikacji WhatsApp na komputer 24*7

Pozostań w kontakcie dzięki aplikacji WhatsApp na komputer 24*7

Whatsapp w końcu uruchomił aplikację Desktop dla użytkowników komputerów Mac i Windows. Teraz możesz łatwo uzyskać dostęp do Whatsapp z systemu Windows lub Mac. Dostępne dla Windows 8+ i Mac OS 10.9+

5 przykładów, które dowodzą, że energetyka jądrowa nie zawsze jest zła

5 przykładów, które dowodzą, że energetyka jądrowa nie zawsze jest zła

Energia jądrowa jest zawsze pogardzana, nigdy jej nie szanujemy z powodu przeszłych wydarzeń, ale nie zawsze jest zła. Przeczytaj post, aby dowiedzieć się więcej na ten temat.

Friday Essential: Co się stało z samochodami sterowanymi przez sztuczną inteligencję?

Friday Essential: Co się stało z samochodami sterowanymi przez sztuczną inteligencję?

Koncepcja autonomicznych samochodów, które wyjadą na drogi za pomocą sztucznej inteligencji, to marzenie, które mamy już od jakiegoś czasu. Ale pomimo kilku obietnic nigdzie ich nie widać. Przeczytaj ten blog, aby dowiedzieć się więcej…

Czy AI może walczyć z rosnącą liczbą ataków ransomware?

Czy AI może walczyć z rosnącą liczbą ataków ransomware?

Wzrasta liczba ataków ransomware, ale czy sztuczna inteligencja może pomóc w radzeniu sobie z najnowszym wirusem komputerowym? Czy AI jest odpowiedzią? Przeczytaj tutaj, wiedz, że sztuczna inteligencja jest zmorą lub zgubą

5 przydatnych narzędzi sztucznej inteligencji, które uproszczą Twoje życie

5 przydatnych narzędzi sztucznej inteligencji, które uproszczą Twoje życie

Sztuczna inteligencja nie jest dla ludzi nową nazwą. Ponieważ sztuczna inteligencja jest włączona do każdego strumienia, jednym z nich jest opracowywanie narzędzi zwiększających ludzką wydajność i dokładność. Skorzystaj z tych niesamowitych narzędzi uczenia maszynowego i uprość swoje codzienne zadania.

Wgląd w 26 technik analizy Big Data: część 2

Wgląd w 26 technik analizy Big Data: część 2

Zawsze potrzebujemy Big Data Analytics do efektywnego zarządzania danymi. W tym artykule omówiliśmy kilka technik analizy Big Data. Sprawdź ten artykuł.

Ataki DDOS: krótki przegląd

Ataki DDOS: krótki przegląd

Czy jesteś również ofiarą ataków DDOS i nie masz pewności co do metod zapobiegania? Przeczytaj ten artykuł, aby rozwiązać swoje pytania.