This post is from a low-reputation account and contains an unverified outbound link. Be cautious before clicking external links.

Geliştirici dostu docker #2

makseli(25)
Published in
#docker
Words
348
Reading
2 min
Listen
Play
7y

Konu hakkındaki ilk yazım https://steemit.com/docker/@makseli/gelistirici-dostu

Bu yazıda karşılaştığım durumları ve "/etc/docker/daemon.json" dosyası tanımlamaları ile halletme yöntemlerine değinmek istiyorum.

  1. konu: default-address-pools tanımlaması; default-address-pools tanımlaması ile docker servisine şunu anlatmaya çalışıyoruz. Bak abicim ya da eeey docker; "Ben bu kurulumda Yeni ağlar için Özel IP Aralığı ile çalışmak istiyorum. Aha da bu vereceğim Ip aralığında bana networkler oluştur"

Nasıl olacak bu iş ? Terminali açıyoruz ve /etc/docker/daemon.json dosyasını gedit, vim veya nano ile çalıştırıyoruz;

{
  "default-address-pools":
  [
    {"base":"172.26.0.0/16","size":24}
  ]
}

şeklinde kaydedip kapatıyoruz.

Peki ne zaman kullanmamız icab eder?

  • Geliştirme ortamındaki kullanmak istediğiniz docker container ler arası tanımlı ip haberleşmesi lazım olduğunda
  • Kurumunuzun networkculeri "172.17...." bloğunu kullanıyorsa buna ihtiyacınız var demektir. Network uzmanınıza danışırsanız size bu tanımlamayı yapmanızı önerecektir. Aksi takdirde, docker servisini stop etmeden network işlemleriniz sekteye uğrayacaktır.

/etc/docker/daemon.json dosyasında ilgili değişikliği yaptıktan sonra, servisi yeniden başlatmayı unutmayın lütfen.
$ sudo service docker restart

Diğer konu ise: insecure-registries tanımlaması;

Kendi ortamınızda build ettiğiniz image i hub.docker.com a upload etmek uzun sürebilir veya hızlıca denemeler yapmak için lokal registry ihtiyacınız olabilir. Bu ihtiyacınızı gidermek için kendi bilgisayarınızda veya VPS sunucunuzda, local registry docker image ayağa kaldırabilirsiniz;

Kendi ortamınızda veya uzak VPS üzerinde terminali açın ve aşağıdaki satır ile "registry:2" isimli image indirip container ı ayağa kaldırabilirsiniz. Kısa sürede olsa public olacak şekilde yayına alacaksanız, en azından 5000 nolu portu değiştirmenizi tavsiye ederim.

$ docker run -d -p 5000:5000 --restart=always --name registry registry:2

Terminal görüntünüz aşağıdaki gibi olmalı;

image.png

Daha detaylı bilgi için; https://docs.docker.com/registry/deploying/ adresini ziyaret edebilirsiniz.

Benim eklemek istediğim kısım, kendi makineniz haricinde, iç veya dış networkten bir domain tanımlaması ile ulaşmak istiyorsanız aşağıdaki hatalara denkgelebilirsiniz;

"Get https://xyz.com:5000/v2/: http: server gave HTTP response to HTTPS client"
ve ya
"Error parsing reference: "http://xyz.com:5000/imageName1909" is not a valid repository/tag: invalid reference format"

Bu hataları alıyoruz çünki containerler için image gönderip alma işlemini HTTPS olmayan bir trafik üzerinden geçirmeye çalışıyoruz;

şimdi "/etc/docker/daemon.json" dosyasını vi, vim veya nano açalım.

{
  "insecure-registries" : ["mustafaakseli.com:5000"]
}

Bu ayarın geçerli olması için servise restart atmayı unutmayın;
$ service docker restart

HTTPS için sertifika kullanma ve diğer opsiyonlar için; https://docs.docker.com/registry/insecure/ adresini ziyaret edebilirsiniz.

Buraya kadar herhangi bir sorunuz var ise yorum bölümünden iletebilirsiniz;

Eğer her iki tanımlamayı birden yapmanız gerekiyor ise /etc/docker/daemon.json dosyanız aşağıdaki gibi gözükmelidir;

{
 "insecure-registries":["mustafaakseli.com:5000"],
  "default-address-pools":
  [
    {"base":"172.26.0.0/16","size":24}
  ]
} 

Boşuna denemeyin ben 5000 portunu ve bu domaini kullanmıyorum :) Bu yazı güncellenmeye devam edecektir.

İyi çalışmalar...

Geliştirici dostu docker #2 | Ecency