Geliştirici dostu docker #2

in #docker7 months ago (edited)

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...

Sort:  

Congratulations @makseli! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You published more than 10 posts. Your next target is to reach 20 posts.

You can view your badges on your Steem Board and compare to others on the Steem Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Coin Marketplace

STEEM 0.16
TRX 0.03
JST 0.038
BTC 10524.56
ETH 342.48
USDT 1.00
SBD 0.96