CoreOSta Kendi Docker Kayıt Defterinizi Kurun

Hepimiz uygulama kaplarını birden çok makineye oluşturmak, yönetmek ve dağıtmak için bir platform olan Docker'ı biliyoruz ve seviyoruz. Docker Inc., "Docker Kayıt Defteri" olarak bilinen bir git deposu gibi indirilecek (veya çekilecek) açık kaynaklı kapları barındırmak için bir hizmet sunmaktadır. Bunu Docker kapları için bir GitHub gibi düşünün.

Peki ya kendi kayıt defterinizi herkese açık olandan ayırmak istiyorsanız? Docker Inc., Kayıt Defteri uygulamalarını GitHub'da açık kaynaklı hale getirdi.

Bu eğitimde, yeni bir VPS'de CoreOS kullanarak özel bir Docker kayıt defteri oluşturma işlemi yapılır.

CoreOS + Docker

Bu öğreticinin kapsamı dışında olduğu için Docker ve CoreOS'un tam olarak neler yapabileceğine dair tonlarca zaman harcamayız. Temel olarak, CoreOS büyük sunucu kümeleri için tasarlanmıştır, küçük, hızlıdır ve otomatik olarak düzenli güvenlik güncellemeleri alır. Kök dosya sistemi de salt okunurdur, yani temel kurulumda bulunmayan her türlü yazılımı çalıştırmak için Docker'ı kullanmanız gerekir.

Bu, Core OS'yi Docker için mükemmel bir ana sistem yapar!

En son kayıt defterini çekme ve çalıştırma

Docker Inc., Kayıt Defterini en üst düzey bir görüntü olarak sağladı, bu da basit bir şekilde aşağı çekebileceğimiz anlamına geliyor:

docker pull registry

Bağlantı hızına bağlı olarak bu işlem birkaç dakika sürebilir.

Üst düzey görüntü olmanın bir artısı, düzenli destek ve güncellemeler aldığı anlamına gelir.

Şimdi kayıt defterini test edelim. Kayıt defteri görüntüsünü kullanarak yeni bir kapsayıcı oluşturabiliriz:

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

Docker'ı çok fazla kullanmayanlar için -pbayrak anlamına gelir PORT, yani 5000 numaralı bağlantı noktasını kaptan ana bilgisayar bağlantı noktasına 5000 açıklıyoruz.

-dBayrak açılımı daemonbu konteyner arka planda çalışmasına ve geçerli SSH oturumuna çıktı yazdırmak değil neden olur, biz de kullanarak bu temel test kabı isim istiyoruz --namebiz daha sonra kolayca yönetebilir, böylece seçeneği.

Temel kayıt defteri kabınızın kullanarak çalıştığından emin olun docker ps. Çıktı şuna benzer olmalıdır:

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

Ayrıca, http://YOUR_IP:5000web tarayıcınızı ziyaret edin ve aşağıdaki gibi bir mesaj almalısınız:

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

devParantez içindeki kelimeye dikkat edin . Bu, sunucunun şu anda dev config çalıştırdığı anlamına gelir. Yakında daha fazla yapılandırmaya bakacağız.

Artık kendi (çok temel) konteyner kayıt defteriniz var! Ama henüz işimiz bitmedi.

Belki bunu meraklı gözlerden gizli tutmak veya resimlerinizi yerel depolama yerine Amazon S3'te saklamak istersiniz. Bir sonraki bölümdeki çeşitli yapılandırma seçeneklerini gözden geçirelim.

Devam etmeden önce, test kapsayıcısını öldürelim, böylece çakışan bağlantı noktalarına girmeyelim.

docker kill basic_registry

Kayıt defteri yapılandırması

Yapılandırmayı Docker Kayıt Defteri'ne geçirebilmemizin iki yolu vardır. Bir yol, ortam değişkenlerini yeni bir kapsayıcıya aktarmak, diğeri ise bir yapılandırma dosyası eklemektir.

Kullanacağımız yaygın yapılandırma seçeneklerinden bazıları:

  • loglevel- Konsola kaydedilecek minimum bilgi miktarı. Varsayılan değer info.
  • standalone- Bu Kayıt Defteri kendi kendine işlemeli mi? (Asla genel kayıt defterini sorgular.) Varsayılan true.
  • index_endpoint- Bağımsız değilse, başka hangi dizini sorgulayacağız? Varsayılan index.docker.io.
  • cacheve cache_lru- Küçük dosyalar için Redis önbellek kullanımına ilişkin seçenekler, buna daha sonra değineceğiz.
  • storage- Bu sunucu için hangi depolama arka ucunu kullanmalıyız? (Bu derste yerel kullanacağız).
  • storage_path - Yerel depolama kullanılıyorsa, dosyaları tutmak için hangi dizini kullanmalıyız?

Yapılandırma ile çalışmaya başlamadan önce, çalışmak için bir temel dosyaya ihtiyacımız var. GitHub'daki Docker Kayıt Defteri deposundaki dosya düzgün çalışır:

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

Dosya, aşağıdakiler gibi bir çıktıyla başarıyla kaydedilmelidir:

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

Harika! Şimdi bu dosyayı ihtiyaçlarımıza göre değiştirebiliriz.

Core OS ile birlikte gelen tek metin editörüdür vim, ancak daha önce hiç kullanmadıysanız endişelenmeyin, bu, neyi düzenleyeceğinizi ve nasıl yapacağınızı adım adım açıklayacaktır.

vim config_sample.yml

Dosyayı açtıktan sonra, düğmesine basın Ive sağ alt köşede: -- INSERT --ekleme modu için görüntülenmelidir . Ok tuşlarınızı kullanarak dosyanın sonuna kadar ilerleyin, etiketli bir bölüm görmelisiniz prod.

İki satırı değiştireceğiz, değişiklikler aşağıda

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

Yaptığımız şey bölüm yerine bölümden prodtüretilecek yapılandırmayı değiştirmek . Sonra yeni kap içindeki yolu kullanmak için üzerine yazdık .locals3storage_path/data

Tüm değişikliklerin doğru olduğunu onayladıktan sonra, ESCekleme modundan ve türünden çıkmak için tuşuna basın :wq(bu, değişiklikleri dosyaya yazmak ve vim'den çıkmak anlamına gelir.)

Şimdi dosyayı yeniden adlandıralım config.yml

mv config_sample.yml config.yml

Yeniden önbelleğe alma (isteğe bağlı)

Kapsayıcı kayıt defterinizi hızlandırmak için redis'i kullanmak istiyorsanız, genel kayıt defterinden yeni bir kapsayıcı almak ve birkaç yapılandırma satırı eklemek kadar basittir.

İlk olarak, Redis'in üst düzey görüntüsünü çekin:

docker pull redis

Görüntü başarıyla çekildikten sonra, test kayıtlarında yaptığımız gibi çalıştırabilir ve adlandırabiliriz:

docker run -d --name registry-redis redis

Redis bellekte olduğundan, daha sonraki adımlarda kayıt defteri kapsayıcısına bağlayacağımız için bunun için herhangi bir yapılandırma yapmamız gerekmez.

Bir kez daha, şunu kullanarak çalıştığından emin olun 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

Şimdi yeniden açmak config.ymliçinde vimve sadece bunu düzenlenmiş ilk kez gibi moda eki girin.

prodGirintiyi düzgün girdiğinizden emin olarak bölümün altına aşağıdaki satırları ekleyin . Bu sefer sadece cacheve ekliyoruz 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

Ortam değişkenleri REDIS_PORT_6379_TCP_ADDRve REDIS_PORT_6379_TCP_PORTRedis konteyneri ile bağlantı kurulduktan sonra kayıt defteri kapsayıcısına aktarılır.

Bununla birlikte, kayıt defteri kabınızla el ele çalışacak bir Redis kapsayıcısı kurdunuz. Şimdi kayıt defterini inşa etmeye!

Konteyner yapımı

Tüm yapılandırma ayarlanmış ve hazır, şimdi gerçek kayıt defteri kapsayıcısını oluşturmamız gerekiyor.

Çalıştır vim DockerfileYeni Dockerfile oluşturun. Ekleme moduna girin ve aşağıdaki düzenlemeleri izleyin.

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

Yukarıda yaptığımız şey, kayıt defteri görüntüsünü genişletmektir, böylece yapılandırma dosyamızı ve ayarları kullanacaktır. Dockerfile, Docker'ın okuması ve derlemesi için bir dizi derleme talimatıdır. Dockerfiles ve sözdizimleri hakkında daha fazla bilgi edinmek isterseniz, resmi Docker sitesi belgelerine göz atın.

Daha sonra kullanım için kabı oluşturmamız gerekiyor.

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

Şimdi koşmaya hazırız!

Kapsayıcıya /databirim olarak monte etmek için ana bilgisayar sistemimizde bir dizin oluşturalım .

mkdir registry-data

Şimdi yeni bir kap yapabiliriz. Redis önbelleğini kullanmayı planlıyorsanız, aşağıdaki 2. komutu kullanın.

# 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

Sunucunuzun düzgün çalıştığından emin olmak için adresini ziyaret edin http://YOUR_IP:5000. Aşağıdaki mesajı göreceksiniz:

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

(prod)Yapılandırma değişikliklerinizin başarılı olduğu anlamına dikkat edin!

Yerel Docker istemcinizi yapılandırın

Artık kendi çalışan kayıt defteriniz olduğuna göre, yerel makinelerimizdeki Docker istemcisinin onu kullanmaya başlamasını istiyoruz. Genellikle şu komutu kullanırsınız: docker loginancak bizim kullanımımız için login komutuna bir argüman daha eklememiz gerekir:

docker login YOUR_IP:5000

Bir kullanıcı adı ve şifre girin (bunu yeni bir hesap oluşturmak gibi düşünün) ve etkinleştirmeniz gerektiğini belirten mesajı yok sayın.

Sonra, bir stok görüntüsünü çekelim ve kendi havuzumuza itelim.

# 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

Her şey doğru şekilde itilirse, son mesaj aşağıdaki satırlarda olmalıdır:

Pushing tag for rev [a9eb17255234] on 

Tebrikler! Kendi docker deponuzu kurdunuz.

Sıradaki ne?

Yeni özel kayıt defterinizi nasıl geliştirebileceğinizle ilgili bazı fikirler:

  • Nginx veya Apache kullanarak proxy'yi, basit HTTP yetkilendirme gibi ek güvenlik yerleştirmek için tersine çevirin.
  • Sunucunuz için bir alan adı alın ve kayıt defterinize aşağıdaki gibi bir şeyle erişebilmeniz için ayarlayın: kayıt defteri.mysite.com
  • Kapsayıcılarınız hassas bilgiler içeriyorsa daha fazla koruma eklemek için bir SSL sertifikası satın alın (veya otomatik olarak imzalayın).


KubOSM ile Kubernetesi CentOS 7de dağıtın

KubOSM ile Kubernetesi CentOS 7de dağıtın

Genel Bakış Bu makale, bir Kubernetes kümesini hemen kurup kubeadm ile çalıştırmanıza yardımcı olmak içindir. Bu kılavuz iki sunucuyu

Rancher OSyi iPXE üzerinden yükleme

Rancher OSyi iPXE üzerinden yükleme

Rancher OS, Docker etrafında inşa edilmiş çok hafif bir Linux dağıtımıdır. İşletim sisteminin kendisi yaklaşık 20 MB ağırlığında. Bu eğitici ile birlikte çalışmaya başlayacaksınız

Ubuntu 18.04e Docker CEyi yükleyin

Ubuntu 18.04e Docker CEyi yükleyin

Giriş Docker, kapsayıcı olarak çalıştırılan programları dağıtmamızı sağlayan bir uygulamadır. Popüler Go programlama dilinde yazılmıştır

Alpine Linux 3.9.0da bir Docker Sürüsü oluşturma

Alpine Linux 3.9.0da bir Docker Sürüsü oluşturma

Giriş Bu kılavuz, birden fazla Alpine Linux 3.9.0 sunucusu ve Portainer kullanarak bir Docker sürüsü oluşturmayı ve yapılandırmayı gösterecektir. Lütfen unutmayın

Docker-compose Kullanarak PHP Uygulaması Dağıtma

Docker-compose Kullanarak PHP Uygulaması Dağıtma

PHP uygulamaları genellikle bir web sunucusu, ilişkisel veritabanı sistemi ve dil yorumlayıcısının kendisinden oluşur. Bu derste leveragin olacağız

Dockerı CentOS 7ye yükleme

Dockerı CentOS 7ye yükleme

Farklı Bir Sistem mi Kullanıyorsunuz? Docker, sanal kapsayıcılara yazılım dağıtımına izin veren bir uygulamadır. Go programında yazıldı

CentOS 7 Üzerinde Liman Kurulumu

CentOS 7 Üzerinde Liman Kurulumu

Harbor, Docker görüntülerini depolayan ve dağıtan açık kaynaklı, kurumsal sınıf bir kayıt defteri sunucusudur. Liman, açık kaynaklı Docker Dağıtımını genişletiyor b

CoreOSa docker-compose kurulumu

CoreOSa docker-compose kurulumu

Bu makalede, docker-composeun CoreOSa nasıl yükleneceği açıklanmaktadır. CoreOSta / usr / klasörü değiştirilemez, bu nedenle standart / usr / local / bin yolu kullanılamaz.

Rancherı CentOS 7ye yükleyin

Rancherı CentOS 7ye yükleyin

Farklı Bir Sistem mi Kullanıyorsunuz? Giriş Rancher, konteynerleri çalıştırmak ve özel bir konteyner servisi oluşturmak için açık kaynaklı bir platformdur. Çiftlik temelidir

Rancherı Ubuntu 16.04e yükleyin

Rancherı Ubuntu 16.04e yükleyin

Farklı Bir Sistem mi Kullanıyorsunuz? Giriş Rancher, konteynerleri çalıştırmak ve özel bir konteyner servisi oluşturmak için açık kaynaklı bir platformdur. Çiftlik temelidir

Debian 9 Docker Swarm (CE) ile Yapışkan Oturum

Debian 9 Docker Swarm (CE) ile Yapışkan Oturum

Farklı Bir Sistem mi Kullanıyorsunuz? Giriş Docker Swarm, bireysel sunucularınızı bir bilgisayar kümesine dönüştürür; ölçeklendirme, yüksek kullanılabilirlik ve

İki Docker Grafik Yönetim Aracı: DockerUI ve Tersane

İki Docker Grafik Yönetim Aracı: DockerUI ve Tersane

Vultr Docker uygulamasının yardımıyla Dockerı Vultr sunucu örneğinize kolayca dağıtabilirsiniz. Bu arada, Docker yönetim görevini kolaylaştırabilirsiniz

Ubuntu 16.04te Docker ile Sentry Kurulumu

Ubuntu 16.04te Docker ile Sentry Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Giriş Sentry, hata izleme için açık kaynaklı bir çözümdür. Nöbetçi istisnaları ve diğer yararlı mesajları izler

RancherOS üzerine Rancher Server kurun

RancherOS üzerine Rancher Server kurun

Genel Bakış RancherOS, sistem hizmetlerini çalıştırmak için bir Docker arka plan programı PID 0 olarak çalıştıran inanılmaz derecede hafif bir işletim sistemidir (yalnızca yaklaşık 60 MB).

CentOS 7de Docker Sürüsü (CE) ile Yapışkan Oturum

CentOS 7de Docker Sürüsü (CE) ile Yapışkan Oturum

Farklı Bir Sistem mi Kullanıyorsunuz? Giriş Docker Swarm, bireysel sunucularınızı bir bilgisayar kümesine dönüştürerek ölçeklendirmeyi, yüksek kullanılabilirliği ve

Docker Nasıl Kullanılır: İlk Docker Kapsayıcısını Oluşturma

Docker Nasıl Kullanılır: İlk Docker Kapsayıcısını Oluşturma

Bu eğitimde Dockerı kullanmaya başlamanın temelleri açıklanmaktadır. Dockerın kurulu olduğunu varsayıyorum. Bu öğreticideki adımlar,

Docker ile Yük Dengesi

Docker ile Yük Dengesi

Bir web uygulaması çalıştırırken, yazılımınızı çoklu iş parçacığını kullanmak için dönüştürmek zorunda kalmadan normalde kaynaklarınızdan en iyi şekilde yararlanmak istersiniz.

Docker ile CentOS 7de SQL Server 2017ye (MS-SQL) Başlarken

Docker ile CentOS 7de SQL Server 2017ye (MS-SQL) Başlarken

Önkoşullar Docker motoru 1.8+. Minimum 4GB disk alanı. Minimum 4GB RAM. Adım 1. Dockerı yükleyin SQL-Serverı yüklemek için Docker mus

Docker Kullanarak Bir Node.js Uygulaması Dağıtma

Docker Kullanarak Bir Node.js Uygulaması Dağıtma

Bu makalede, Düğüm uygulamanızı bir Docker kapsayıcısında nasıl dağıtacağınız gösterilecektir. Not: Bu eğiticide Dockerın yüklü ve okunmuş olduğu varsayılmaktadır

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp, uzaktan sağlık hizmetleri ve gelecek nesiller üzerindeki etkisi nedir? Pandemi durumunda iyi bir yer mi değil mi? Bir görünüm bulmak için blogu okuyun!

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Bilgisayar korsanlarının çok para kazandığını duymuş olabilirsiniz, ancak bu kadar parayı nasıl kazandıklarını hiç merak ettiniz mi? Hadi tartışalım.

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

Son zamanlarda Apple, sorunları gidermek için macOS Catalina 10.15.4'ü ek bir güncelleme yayınladı, ancak güncelleme, mac makinelerinde tuğla oluşmasına neden olan daha fazla soruna neden oluyor gibi görünüyor. Daha fazla bilgi edinmek için bu makaleyi okuyun