Ubuntu 18.04’te Docker Nasıl Kurulur ve Kullanılır

Giriş

Docker , konteynerlerdeki uygulama süreçlerini yönetme sürecini basitleştiren bir uygulamadır . Kapsayıcılar, uygulamalarınızı kaynak yalıtımlı süreçlerde çalıştırmanıza olanak tanır. Sanal makinelere benzerler, ancak kapsayıcılar daha taşınabilir, daha kaynak dostu ve ana bilgisayar işletim sistemine daha bağımlıdır.

Bir Docker konteynerinin farklı bileşenlerine ayrıntılı bir giriş için Docker Ekosistemi: Ortak Bileşenlere Giriş konusuna bakın .

Bu eğiticide, Ubuntu 18.04 üzerinde Docker Community Edition’ı (CE) kuracak ve kullanacaksınız. Docker’ın kendisini kuracak, kapsayıcılar ve görüntülerle çalışacak ve Docker Deposuna bir görüntü göndereceksiniz.

Önkoşullar

Bu öğreticiyi takip etmek için aşağıdakilere ihtiyacınız olacak:

  • Sudo root olmayan bir kullanıcı ve bir güvenlik duvarı dahil olmak üzere Ubuntu 18.04 ilk sunucu kurulum kılavuzunu takip ederek bir Ubuntu 18.04 sunucusu kuruldu .
  • Kendi görüntülerinizi oluşturmak ve bunları Adım 7 ve 8’de gösterildiği gibi Docker Hub’a göndermek istiyorsanız Docker Hub’da bir hesap .

Adım 1 – Docker’ı Kurmak

Resmi Ubuntu deposunda bulunan Docker kurulum paketi en son sürüm olmayabilir. En son sürümü aldığımızdan emin olmak için Docker’ı resmi Docker deposundan kuracağız. Bunu yapmak için yeni bir paket kaynağı ekleyeceğiz, indirmelerin geçerli olduğundan emin olmak için Docker’dan GPG anahtarını ekleyeceğiz ve ardından paketi yükleyeceğiz.

Öncelikle, mevcut paket listenizi güncelleyin:

sudo apt update

Ardından, aptpaketlerin HTTPS üzerinden kullanılmasına izin veren birkaç ön koşul paketi kurun :

sudo apt install apt-transport-https ca-certificates curl software-properties-common

Ardından, resmi Docker deposu için GPG anahtarını sisteminize ekleyin:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Docker deposunu APT kaynaklarına ekleyin:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"

Ardından, paket veritabanını yeni eklenen depodaki Docker paketleriyle güncelleyin:

sudo apt update

Varsayılan Ubuntu deposu yerine Docker deposundan yükleme yapmak üzere olduğunuzdan emin olun:

apt-cache policy docker-ce

Docker için sürüm numarası farklı olsa da, şu şekilde çıktı göreceksiniz:Apt-cache politikası docker-ce çıktısı

docker-ce:
  Installed: (none)
  Candidate: 18.03.1~ce~3-0~ubuntu
  Version table:
     18.03.1~ce~3-0~ubuntu 500
        500 https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages

Bunun docker-ceyüklü olmadığına dikkat edin , ancak yükleme adayı Ubuntu 18.04 için Docker deposundan ( bionic).

Son olarak Docker’ı kurun:

sudo apt install docker-ce

Docker şimdi kurulmalı, arka plan programı başlatılmalı ve işlem önyüklemede başlayacak şekilde etkinleştirilmelidir. Çalıştığını kontrol edin:

sudo systemctl status docker

Çıktı, hizmetin etkin ve çalıştığını gösterecek şekilde aşağıdakine benzer olmalıdır:

Output● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2018-07-05 15:08:39 UTC; 2min 55s ago
     Docs: https://docs.docker.com
 Main PID: 10096 (dockerd)
    Tasks: 16
   CGroup: /system.slice/docker.service
           ├─10096 /usr/bin/dockerd -H fd://
           └─10113 docker-containerd --config /var/run/docker/containerd/containerd.toml

Docker’ı kurmak artık size sadece Docker hizmetini (daemon) değil, aynı zamanda dockerkomut satırı yardımcı programını veya Docker istemcisini de veriyor . dockerKomutun nasıl kullanılacağını bu öğreticide daha sonra inceleyeceğiz.

Adım 2 – Docker Komutunu Sudo Olmadan Yürütme (İsteğe Bağlı)

Varsayılan olarak, dockerkomut yalnızca kök kullanıcı tarafından veya Docker’ın kurulum işlemi sırasında otomatik olarak oluşturulan docker grubundaki bir kullanıcı tarafından çalıştırılabilir . Docker grubunda olmadan veya olmadan dockerkomutu çalıştırmaya çalışırsanız , aşağıdaki gibi bir çıktı alırsınız:sudo

Outputdocker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?.
See 'docker run --help'.

Komutu sudoher çalıştırdığınızda yazmaktan kaçınmak istiyorsanız docker, kullanıcı adınızı dockergruba ekleyin :

sudo usermod -aG docker ${USER}

Yeni grup üyeliğini uygulamak için sunucudan çıkıp tekrar oturum açın veya aşağıdakileri yazın:

su - ${USER}

Devam etmek için kullanıcı şifrenizi girmeniz istenecektir.

Kullanıcınızın artık docker grubuna eklendiğini şunu yazarak onaylayın :

id -nG
Outputsammy sudo docker

dockerGruba giriş yapmadığınız bir kullanıcı eklemeniz gerekiyorsa , bu kullanıcı adını açıkça şunu kullanarak bildirin:

sudo usermod -aG docker username

Bu makalenin geri kalanı, dockerkomutu docker grubunda bir kullanıcı olarak çalıştırdığınızı varsayar . Yapmamayı seçerseniz, lütfen komutların başına ekleyin sudo.

Şimdi dockerkomutu inceleyelim .

Adım 3 – Docker Komutunu Kullanma

Kullanımı docker, ona bir seçenekler ve komutlar zincirini ve ardından argümanları iletmekten ibarettir. Sözdizimi şu biçimi alır:

docker [option] [command] [arguments]

Mevcut tüm alt komutları görüntülemek için şunu yazın:

docker

Docker 18’den itibaren, mevcut alt komutların tam listesi şunları içerir:

Output
  attach      Attach local standard input, output, and error streams to a running container
  build       Build an image from a Dockerfile
  commit      Create a new image from a container's changes
  cp          Copy files/folders between a container and the local filesystem
  create      Create a new container
  diff        Inspect changes to files or directories on a container's filesystem
  events      Get real time events from the server
  exec        Run a command in a running container
  export      Export a container's filesystem as a tar archive
  history     Show the history of an image
  images      List images
  import      Import the contents from a tarball to create a filesystem image
  info        Display system-wide information
  inspect     Return low-level information on Docker objects
  kill        Kill one or more running containers
  load        Load an image from a tar archive or STDIN
  login       Log in to a Docker registry
  logout      Log out from a Docker registry
  logs        Fetch the logs of a container
  pause       Pause all processes within one or more containers
  port        List port mappings or a specific mapping for the container
  ps          List containers
  pull        Pull an image or a repository from a registry
  push        Push an image or a repository to a registry
  rename      Rename a container
  restart     Restart one or more containers
  rm          Remove one or more containers
  rmi         Remove one or more images
  run         Run a command in a new container
  save        Save one or more images to a tar archive (streamed to STDOUT by default)
  search      Search the Docker Hub for images
  start       Start one or more stopped containers
  stats       Display a live stream of container(s) resource usage statistics
  stop        Stop one or more running containers
  tag         Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
  top         Display the running processes of a container
  unpause     Unpause all processes within one or more containers
  update      Update configuration of one or more containers
  version     Show the Docker version information
  wait        Block until one or more containers stop, then print their exit codes

Belirli bir komutun kullanabileceği seçenekleri görüntülemek için şunu yazın:

docker docker-subcommand --help

Docker hakkında sistem genelindeki bilgileri görüntülemek için şunu kullanın:

docker info

Bu komutlardan bazılarını inceleyelim. Resimlerle çalışarak başlayacağız.

Adım 4 – Docker Görüntüleriyle Çalışma

Docker kapsayıcıları Docker görüntülerinden oluşturulur. Varsayılan olarak Docker, bu görüntüleri Docker projesinin arkasındaki şirket olan Docker tarafından yönetilen bir Docker kayıt defteri olan Docker Hub’dan çeker . Herkes Docker görüntülerini Docker Hub’da barındırabilir, bu nedenle ihtiyaç duyacağınız çoğu uygulama ve Linux dağıtımında barındırılan görüntüler olacaktır.

Docker Hub’daki görüntülere erişip erişemeyeceğinizi ve indirip indiremeyeceğinizi kontrol etmek için şunu yazın:

docker run hello-world

Çıktı, Docker’ın doğru çalıştığını gösterecektir:

OutputUnable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
9bb5a5d4561a: Pull complete
Digest: sha256:3e1764d0f546ceac4565547df2ac4907fe46f007ea229fd7ef2718514bcec35d
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.
...

Docker başlangıçta hello-worldimajı yerel olarak bulamadı , bu yüzden imajı varsayılan depo olan Docker Hub’dan indirdi. Görüntü indirildikten sonra Docker, görüntüden bir kapsayıcı oluşturdu ve kapsayıcı içindeki uygulama yürütüldü ve mesajı görüntüledi.

Alt dockerkomutla komutu kullanarak Docker Hub’da bulunan görüntüleri arayabilirsiniz search. Örneğin, Ubuntu görüntüsünü aramak için şunu yazın:

docker search ubuntu

Komut dosyası Docker Hub’ı tarar ve adı arama dizesiyle eşleşen tüm görüntülerin bir listesini döndürür. Bu durumda çıktı şuna benzer olacaktır:

OutputNAME                                                      DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
ubuntu                                                    Ubuntu is a Debian-based Linux operating sys…   7917                [OK]
dorowu/ubuntu-desktop-lxde-vnc                            Ubuntu with openssh-server and NoVNC            193                                     [OK]
rastasheep/ubuntu-sshd                                    Dockerized SSH service, built on top of offi…   156                                     [OK]
ansible/ubuntu14.04-ansible                               Ubuntu 14.04 LTS with ansible                   93                                      [OK]
ubuntu-upstart                                            Upstart is an event-based replacement for th…   87                  [OK]
neurodebian                                               NeuroDebian provides neuroscience research s…   50                  [OK]
ubuntu-debootstrap                                        debootstrap --variant=minbase --components=m…   38                  [OK]
1and1internet/ubuntu-16-nginx-php-phpmyadmin-mysql-5      ubuntu-16-nginx-php-phpmyadmin-mysql-5          36                                      [OK]
nuagebec/ubuntu                                           Simple always updated Ubuntu docker images w…   23                                      [OK]
tutum/ubuntu                                              Simple Ubuntu docker images with SSH access     18
i386/ubuntu                                               Ubuntu is a Debian-based Linux operating sys…   13
ppc64le/ubuntu                                            Ubuntu is a Debian-based Linux operating sys…   12
1and1internet/ubuntu-16-apache-php-7.0                    ubuntu-16-apache-php-7.0                        10                                      [OK]
1and1internet/ubuntu-16-nginx-php-phpmyadmin-mariadb-10   ubuntu-16-nginx-php-phpmyadmin-mariadb-10       6                                       [OK]
eclipse/ubuntu_jdk8                                       Ubuntu, JDK8, Maven 3, git, curl, nmap, mc, …   6                                       [OK]
codenvy/ubuntu_jdk8                                       Ubuntu, JDK8, Maven 3, git, curl, nmap, mc, …   4                                       [OK]
darksheer/ubuntu                                          Base Ubuntu Image -- Updated hourly             4                                       [OK]
1and1internet/ubuntu-16-apache                            ubuntu-16-apache                                3                                       [OK]
1and1internet/ubuntu-16-nginx-php-5.6-wordpress-4         ubuntu-16-nginx-php-5.6-wordpress-4             3                                       [OK]
1and1internet/ubuntu-16-sshd                              ubuntu-16-sshd                                  1                                       [OK]
pivotaldata/ubuntu                                        A quick freshening-up of the base Ubuntu doc…   1
1and1internet/ubuntu-16-healthcheck                       ubuntu-16-healthcheck                           0                                       [OK]
pivotaldata/ubuntu-gpdb-dev                               Ubuntu images for GPDB development              0
smartentry/ubuntu                                         ubuntu with smartentry                          0                                       [OK]
ossobv/ubuntu
...

Gelen RESMİ sütunda, Tamam bir görüntü inşa edilmiş ve projenin arkasındaki şirket tarafından desteklenen gösterir. Kullanmak istediğiniz görüntüyü belirledikten sonra, pullalt komutu kullanarak bilgisayarınıza indirebilirsiniz .

Resmi ubunturesmi bilgisayarınıza indirmek için aşağıdaki komutu yürütün :

docker pull ubuntu

Aşağıdaki çıktıyı göreceksiniz:

OutputUsing default tag: latest
latest: Pulling from library/ubuntu
6b98dfc16071: Pull complete
4001a1209541: Pull complete
6319fc68c576: Pull complete
b24603670dc3: Pull complete
97f170c87c6f: Pull complete
Digest: sha256:5f4bdc3467537cbbe563e80db2c3ec95d548a9145d64453b06939c4592d67b6d
Status: Downloaded newer image for ubuntu:latest

Bir görüntü indirildikten sonra, indirilen görüntüyü runalt komutla kullanarak bir kapsayıcıyı çalıştırabilirsiniz . Birlikte gördüğümüz gibi hello-world, örneğin zaman bir görüntü indirilmemesi durumunda, dockerbirlikte yürütüldüğünde runalt komutuyla, Docker istemci ilk önce, görüntü indirmek kullanmadan bir kap çalışacaktır.

Bilgisayarınıza indirilen resimleri görmek için şunu yazın:

docker images

Çıktı aşağıdakine benzer görünmelidir:

OutputREPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              113a43faa138        4 weeks ago         81.2MB
hello-world         latest              e38bc07ac18e        2 months ago        1.85kB

Bu öğreticide daha sonra göreceğiniz gibi, kapsayıcıları çalıştırmak için kullandığınız görüntüler değiştirilebilir ve yeni görüntüler oluşturmak için kullanılabilir, bunlar daha sonra Docker Hub’a veya diğer Docker kayıtlarına yüklenebilir ( teknik terim itilir ).

Kapsayıcıların nasıl çalıştırılacağına daha ayrıntılı bakalım.

Adım 5 – Docker Container Çalıştırma

hello-worldÖnceki adımda ran kap kabın bir örnek olduğunu çalışır ve bir test mesajı yayan sonra çıkışlar. Konteynerler bundan çok daha kullanışlı olabilir ve etkileşimli olabilirler. Sonuçta, sanal makinelere benzerler, yalnızca daha fazla kaynak dostudur.

Örnek olarak, Ubuntu’nun en son görüntüsünü kullanarak bir konteyner çalıştıralım.  ve -t anahtarlarının kombinasyonu , kapsayıcıya etkileşimli kabuk erişimi sağlar:

docker run -it ubuntu

Komut isteminiz, artık konteynerin içinde çalıştığınızı yansıtacak şekilde değişmeli ve şu formu almalıdır:

Outputroot@d9b100f2f636:/#

Komut istemindeki kapsayıcı kimliğini not edin. Bu örnekte öyle d9b100f2f636. Kapsayıcı kimliğini daha sonra kaldırmak istediğinizde kapsayıcıyı tanımlamak için ihtiyacınız olacak.

Artık kabın içindeki herhangi bir komutu çalıştırabilirsiniz. Örneğin konteynerin içindeki paket veritabanını güncelleyelim. Herhangi bir komutun sudoönüne koymanıza gerek yoktur , çünkü kapsayıcı içinde kök kullanıcı olarak çalışıyorsunuz:

apt update

Ardından içindeki herhangi bir uygulamayı yükleyin. Node.js’yi kuralım:

apt install nodejs

Bu, Node.js’yi resmi Ubuntu deposundan kapsayıcıya yükler. Kurulum tamamlandığında, Node.js’nin kurulu olduğunu doğrulayın:

node -v

Terminalinizde görüntülenen sürüm numarasını göreceksiniz:

Outputv8.10.0

Kapsayıcı içinde yaptığınız tüm değişiklikler yalnızca bu kapsayıcı için geçerlidir.

Kaptan çıkmak exitiçin komut istemine yazın.

Şimdi sistemimizdeki kapsayıcıları yönetmeye bakalım.

Adım 6 – Docker Container’larını Yönetme

Docker’ı bir süre kullandıktan sonra, bilgisayarınızda birçok aktif (çalışan) ve pasif konteyneriniz olacak. Aktif olanları görmek için şunu kullanın:

docker ps

Aşağıdakine benzer çıktı göreceksiniz:

OutputCONTAINER ID        IMAGE               COMMAND             CREATED             

Bu eğitimde, iki kapsayıcı başlattınız; biri hello-worldgörüntüden, diğeri ubuntugörüntüden. Her iki kap da artık çalışmıyor, ancak yine de sisteminizde varlar.

Etkin ve etkin olmayan tüm kapsayıcıları görüntülemek docker ps için -aanahtarla çalıştırın :

docker ps -a

Buna benzer bir çıktı göreceksiniz:

d9b100f2f636        ubuntu              "/bin/bash"         About an hour ago   Exited (0) 8 minutes ago                           sharp_volhard
01c950718166        hello-world         "/hello"            About an hour ago   Exited (0) About an hour ago                       festive_williams

Oluşturduğunuz en son kapsayıcıyı görüntülemek için -lanahtarı iletin:

docker ps -l
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
d9b100f2f636        ubuntu              "/bin/bash"         About an hour ago   Exited (0) 10 minutes ago                       sharp_volhard

Durdurulmuş bir kapsayıcı başlatmak için docker start, ardından kapsayıcı kimliğini veya kapsayıcının adını kullanın. Ubuntu tabanlı kapsayıcıya şu ID ile başlayalım d9b100f2f636:

docker start d9b100f2f636

Kapsayıcı başlayacak ve docker psdurumunu görmek için kullanabilirsiniz :

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
d9b100f2f636        ubuntu              "/bin/bash"         About an hour ago   Up 8 seconds                            sharp_volhard

Çalışan bir kapsayıcıyı durdurmak için docker stop, ardından kapsayıcı kimliğini veya adını kullanın. Bu sefer Docker’ın konteynere atadığı adı kullanacağız, yani sharp_volhard:

docker stop sharp_volhard

Artık bir konteynere ihtiyacınız olmadığına karar verdiğinizde docker rm, konteynır kimliğini veya adını tekrar kullanarak komutla kaldırın . Görüntüyle docker ps -ailişkili kapsayıcı için kapsayıcı kimliğini veya adını bulmak hello-worldve kaldırmak için komutu kullanın .

docker rm festive_williams

Yeni bir kap başlatabilir ve --nameanahtarı kullanarak ona bir isim verebilirsiniz . --rmAnahtarı, durdurulduğunda kendisini kaldıran bir kap oluşturmak için de kullanabilirsiniz . docker run helpBu seçenekler ve diğerleri hakkında daha fazla bilgi için komuta bakın .

Kaplar, yeni kaplar oluşturmak için kullanabileceğiniz görüntülere dönüştürülebilir. Bunun nasıl çalıştığına bakalım.

7. Adım – Bir Container’daki Değişiklikleri Docker Görüntüsüne Kaydetme

Bir Docker görüntüsünü başlattığınızda, tıpkı bir sanal makinede yaptığınız gibi dosyaları oluşturabilir, değiştirebilir ve silebilirsiniz. Yaptığınız değişiklikler yalnızca o kapsayıcı için geçerli olacaktır. Başlatabilir ve durdurabilirsiniz, ancak docker rmkomutla onu yok ettiğinizde , değişiklikler tamamen kaybedilecektir.

Bu bölüm, bir konteynerin durumunu yeni bir Docker görüntüsü olarak nasıl kaydedeceğinizi gösterir.

Ubuntu kapsayıcısına Node.js yükledikten sonra, artık bir görüntüyü çalıştıran bir kapsayıcınız var, ancak kapsayıcı, onu oluşturmak için kullandığınız görüntüden farklıdır. Ancak bu Node.js kapsayıcısını daha sonra yeni görüntüler için temel olarak yeniden kullanmak isteyebilirsiniz.

Ardından aşağıdaki komutu kullanarak değişiklikleri yeni bir Docker görüntüsü örneğine uygulayın.

docker commit -m "What you did to the image" -a "Author Name" container_id repository/new_image_name

-M anahtarı ise, sen ve diğerleri gibi değişiklikler yaptığınızı bilmesine yardımcı olur mesajı taahhüt içindir -a yazar belirtmek için kullanılır. Bu container_id, etkileşimli Docker oturumunu başlattığınızda öğreticide daha önce not ettiğinizdir. Docker Hub’da ek depolar oluşturmadıysanız, bu repositorygenellikle Docker Hub kullanıcı adınızdır.

Örneğin , kapsayıcı kimliğine sahip sammy kullanıcısı d9b100f2f636için komut şöyle olacaktır:

docker commit -m "added Node.js" -a "sammy" d9b100f2f636 sammy/ubuntu-nodejs

Bir görüntüyü işlediğinizde , yeni görüntü bilgisayarınıza yerel olarak kaydedilir. Bu öğreticide daha sonra, başkalarının erişebilmesi için bir görüntüyü Docker Hub gibi bir Docker kayıt defterine nasıl aktaracağınızı öğreneceksiniz.

Docker görüntülerini tekrar listelemek, yeni görüntünün yanı sıra türetildiği eski görüntüyü gösterecektir:

docker images

Şu şekilde çıktı göreceksiniz:

OutputREPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
sammy/ubuntu-nodejs   latest              7c1f35226ca6        7 seconds ago       179MB
ubuntu                   latest              113a43faa138        4 weeks ago         81.2MB
hello-world              latest              e38bc07ac18e        2 months ago        1.85kB

Bu örnekte, Docker Hub’daki ubuntu-nodejsmevcut ubuntugörüntüden türetilen yeni görüntü var . Boyut farkı, yapılan değişiklikleri yansıtır. Ve bu örnekte, değişiklik NodeJS’nin kurulmuş olmasıydı. Dolayısıyla, bir dahaki sefere NodeJS önceden yüklenmiş Ubuntu kullanarak bir kapsayıcı çalıştırmanız gerektiğinde, sadece yeni görüntüyü kullanabilirsiniz.

Ayrıca Dockerfile, yazılımın yeni bir görüntüye yüklenmesini otomatikleştirmenizi sağlayan a’dan Görüntüler de oluşturabilirsiniz. Ancak bu, bu öğreticinin kapsamı dışındadır.

Şimdi yeni görüntüyü başkalarıyla paylaşalım, böylece ondan konteyner oluşturabilirler.

Adım 8 – Docker Görüntülerini Docker Deposuna Gönderme

Mevcut bir görüntüden yeni bir görüntü oluşturduktan sonraki mantıksal adım, onu birkaç arkadaşınızla, Docker Hub’daki tüm dünya veya erişiminiz olan diğer Docker kayıt defteri ile paylaşmaktır. Bir görüntüyü Docker Hub’a veya başka bir Docker kayıt defterine göndermek için orada bir hesabınız olmalıdır.

Bu bölümde bir Docker görüntüsünü Docker Hub’a nasıl göndereceğiniz gösterilmektedir. Kendi özel Docker kayıt defterinizi nasıl oluşturacağınızı öğrenmek için Ubuntu 14.04’te Özel Docker Kayıt Defteri Nasıl Kurulur konusuna bakın .

Görüntünüzü göndermek için önce Docker Hub’da oturum açın.

docker login -u docker-registry-username

Docker Hub şifrenizi kullanarak kimlik doğrulamanız istenecektir. Doğru parolayı belirlediyseniz, kimlik doğrulama başarılı olmalıdır.

Not: Docker kayıt defteri kullanıcı adınız, imajı oluşturmak için kullandığınız yerel kullanıcı adından farklıysa, imajınızı kayıt kullanıcı adınızla etiketlemeniz gerekecektir. Son adımda verilen örnek için şunu yazarsınız:

docker tag sammy/ubuntu-nodejs docker-registry-username/ubuntu-nodejs

O zaman kendi resminizi kullanarak şunları kullanabilirsiniz:

docker push docker-registry-username/docker-image-name

İtmek için ubuntu-nodejsgörüntüyü Sammy depo komut şu şekilde olacaktır:

docker push sammy/ubuntu-nodejs

Görüntüleri yüklerken işlemin tamamlanması biraz zaman alabilir, ancak tamamlandığında çıktı şu şekilde görünecektir:

OutputThe push refers to a repository [docker.io/sammy/ubuntu-nodejs]
e3fbbfb44187: Pushed
5f70bf18a086: Pushed
a3b5c80a4eba: Pushed
7f18b442972b: Pushed
3ce512daaf78: Pushed
7aae4540b42d: Pushed

...


Bir görüntüyü bir kayıt defterine gönderdikten sonra, aşağıdaki resimde gösterildiği gibi hesabınızın kontrol panelinde listelenmelidir.

Docker Hub'da yeni Docker görüntüsü listesi

Bir itme denemesi bu tür bir hatayla sonuçlanırsa, muhtemelen oturum açmadınız:

OutputThe push refers to a repository [docker.io/sammy/ubuntu-nodejs]
e3fbbfb44187: Preparing
5f70bf18a086: Preparing
a3b5c80a4eba: Preparing
7f18b442972b: Preparing
3ce512daaf78: Preparing
7aae4540b42d: Waiting
unauthorized: authentication required

İle docker loginoturum açın ve itme girişimini tekrarlayın. Ardından Docker Hub veri havuzu sayfanızda var olduğunu doğrulayın.

Artık görüntüyü yeni bir makineye çekmek ve yeni bir kap çalıştırmak için kullanmak için kullanabilirsiniz.docker pull sammy/ubuntu-nodejs

Kaynak