Android

Docker komutlarını örneklerle çalıştırın

What is a Docker Container? Docker Demo || Docker Tutorial 2

What is a Docker Container? Docker Demo || Docker Tutorial 2

İçindekiler:

Anonim

Docker, uygulamaları neredeyse her yerde çalışan taşınabilir, kendi kendine yeten kaplar olarak geliştirmenize, test etmenize ve dağıtmanıza olanak tanıyan bir platformdur.

docker run komutu, verilen bir görüntüden bir kap oluşturur ve kapsayıcıyı belirli bir komutu kullanarak başlatır. Docker ile çalışmaya başlarken aşina olmanız gereken ilk komutlardan biridir., Docker kapsayıcısını çalıştırmanın çeşitli yollarını göstermek için resmi Nginx resmini kullanacağız.

Docker Çalıştır Komutu

docker run komutu aşağıdaki formu alır:

docker run IMAGE

Konteynerin oluşturulması gereken görüntünün adı, docker run komutu için gereken tek bağımsız değişkendir. Görüntü yerel sistemde yoksa, kayıt defterinden alınır.

Herhangi bir komut belirtilmezse, konteyner çalıştırılırken ENTRYPOINT CMD veya ENTRYPOINT talimatlarında belirtilen komut yürütülür.

Sürüm 1.13'ten başlayarak Docker CLI yeniden yapılandırıldı ve tüm komutlar etkileşime girdikleri nesnenin altında gruplandı.

run komutu kapsayıcılar ile etkileşime girdiğinden, şimdi docker container bir alt komutudur. Yeni komutun sözdizimi aşağıdaki gibidir:

docker container run IMAGE

Eski, 1.13 öncesi söz dizimi hala desteklenmektedir. Kaputun altında, docker run komutu, docker container run için bir diğer docker container run . Kullanıcıların yeni komut sözdizimini kullanmaları önerilir.

Docker docker container run seçeneklerinin bir listesi Docker dokümantasyon sayfasında bulunabilir.

Kapsayıcıyı Ön Planda Çalıştırma

Varsayılan olarak, docker run komutuna herhangi bir seçenek sağlanmadığında, kök işlemi ön planda başlatılır. Bu, kök işleminden standart giriş, çıkış ve hatanın terminal oturumuna eklendiği anlamına gelir.

docker container run nginx

Nginx işleminin çıkışı terminalinizde gösterilecektir. Web sunucusuna bağlantı olmadığından terminal boştur.

Kapsayıcıyı durdurmak için, CTRL+C tuşlarına basarak çalışan Nginx işlemini sonlandırın.

Kapsayıcıyı Ayrı Modda Çalıştırma

Terminal oturumundan çıktığınızda kapsayıcıyı çalışır durumda tutmak için ayrı bir modda başlatın. Bu, arka planda bir Linux işlemi yürütmeye benzer.

Ayrılmış bir kapsayıcı başlatmak için -d seçeneğini kullanın:

docker container run -d nginx

050e72d8567a3ec1e66370350b0069ab5219614f9701f63fcf02e8c8689f04fa

Kök işlemi sonlandırıldığında ayrılan kap duracaktır.

docker container ls komutunu kullanarak çalışan kapsayıcıları listeleyebilirsiniz.

Terminalinizi ayrılmış konteyner kök işlemine docker container attach için docker container attach komutunu kullanın.

Çıkıştan Sonra Konteyneri Çıkarın

Varsayılan olarak, kap kapandığında, dosya sistemi ana sistemde devam eder.

--rm seçenekleri docker run komutunu kaptan otomatik olarak çıktığında kaldırmasını söyler:

docker container run --rm nginx

Nginx görüntüsü, kap çıktıktan sonra kabın dosya sistemini temizlemek için en iyi örnek olmayabilir. Bu seçenek genellikle sınamalar veya veritabanı yedeklemeleri gibi kısa vadeli görevleri gerçekleştiren ön plan kapsayıcılarında kullanılır.

Kapsayıcı Adını Ayarlama

Docker'da her kapsayıcı UUID ve adıyla tanımlanır. Varsayılan olarak, açıkça ayarlanmadıysa, kabın adı Docker arka plan programı tarafından otomatik olarak oluşturulur.

--name özel bir ad atamak için --name seçeneğini kullanın:

docker container run -d --name my_nginx nginx

Kapsayıcı adı benzersiz olmalıdır. Aynı ada sahip başka bir kapsayıcı başlatmaya çalışırsanız, buna benzer bir hata alırsınız:

docker: Error response from daemon: Conflict. The container name "/my_nginx" is already in use by container "9…c". You have to remove (or rename) that container to be able to reuse that name.

Tüm kapsayıcıları listelemek ve adlarını görmek için docker container ls -a çalıştırın:

docker container ls

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9d695c1f5ef4 nginx "nginx -g 'daemon of…" 36 seconds ago Up 35 seconds 80/tcp my_nginx

Anlamlı adlar, bir Docker ağı içindeki veya docker CLI komutlarını çalıştırırken kapsayıcıya başvurmak için kullanışlıdır.

Kapsayıcı Bağlantı Noktalarını Yayınlama

Varsayılan olarak, hiçbir bağlantı noktası yayınlanmadıysa, kapta çalışan işleme yalnızca kap içinden erişilebilir.

Bağlantı noktalarının yayınlanması, bağlantı noktalarının Docker dışındaki hizmetler tarafından kullanılabilmesi için kapsayıcı bağlantı noktalarının ana makine bağlantı noktalarına eşlenmesi anlamına gelir.

Bir bağlantı noktasını yayınlamak için -p seçeneklerini aşağıdaki gibi kullanın:

-p host_ip:host_port:container_port/protocol

  • Herhangi bir host_ip belirtilmezse, varsayılan olarak 0.0.0.0 . protocol belirtilmezse, varsayılan olarak TCP'dir. Birden çok bağlantı noktasını yayınlamak için birden çok -p seçeneği kullanın.

Kapsayıcıdaki TCP bağlantı noktasını (nginx) ana bilgisayar yerel ana bilgisayar arabirimindeki 8080 bağlantı noktasına eşlemek için şunu çalıştırırsınız:

docker container run --name web_server -d -p 8080:80 nginx

Tarayıcınızda http://localhost:8080 açarak veya Docker ana bilgisayarında aşağıdaki curl komutunu çalıştırarak bağlantı noktasının yayınlandığını doğrulayabilirsiniz:

curl -I

Çıktı şöyle görünecektir:

HTTP/1.1 200 OK Server: nginx/1.17.6 Date: Tue, 26 Nov 2019 22:55:59 GMT Content-Type: text/html Content-Length: 612 Last-Modified: Tue, 19 Nov 2019 12:50:08 GMT Connection: keep-alive ETag: "5dd3e500-264" Accept-Ranges: bytes

Veri Paylaşımı (Montaj Birimleri)

Bir kap durdurulduğunda, kap tarafından oluşturulan tüm veriler kaldırılır. Docker Birimleri, verileri kalıcı hale getirmenin ve birden çok kapsayıcıda paylaşmanın tercih edilen yoludur.

Birimleri oluşturmak ve yönetmek için -p seçeneklerini aşağıdaki gibi kullanın:

-v host_src:container_dest:options

  • host_src , ana bilgisayardaki bir dosya veya dizine veya adlandırılmış birime mutlak bir yol olabilir. Container_dest, kapsayıcıdaki bir dosya veya dizine giden mutlak bir yol olabilir. Seçenekler rw (okuma-yazma) ve ro (salt okunur) olabilir). Hiçbir seçenek belirtilmezse, varsayılan değer rw .

Bunun nasıl çalıştığını açıklamak için, ana bilgisayarda bir dizin oluşturalım ve içine bir index.html dosyası koyalım:

mkdir public_html echo "Testing Docker Volumes" > public_html/index.html

Sonra public_html dizinini kaptaki /usr/share/nginx/html :

docker run --name web_server -d -p 8080:80 -v $(pwd)/public_html:/usr/share/nginx/html nginx

public_html dizininin mutlak yolunu belirtmek yerine, geçerli çalışma dizinini yazdıran $(pwd) komutunu kullanıyoruz.

Şimdi, tarayıcınıza http://localhost:8080 yazarsanız, index.html dosyasının içeriğini görmelisiniz. curl da kullanabilirsiniz:

curl

Testing Docker Volumes

Kapsayıcıyı Etkileşimli Olarak Çalıştırma

bash gibi etkileşimli işlemlerle uğraşırken, kapsayıcıyı başlatmak için -i ve -t seçeneklerini kullanın.

-it seçenekleri Docker'a terminale bağlı standart girişi tutmasını ve takma ad tahsis etmesini söyler:

docker container run -it nginx /bin/bash

Kabın Bash kabuğu terminale eklenecek ve komut istemi değişecek:

root@1da70f1937f5:/#

Artık kabın kabuğuyla etkileşime girebilir ve içindeki herhangi bir komutu çalıştırabilirsiniz.

Bu örnekte, Dockerfile öğesinde belirtilen yerine docker run komutuna bağımsız değişken olarak bir komut ( /bin/bash ) sağladık.

Sonuç

Docker, uygulamaları paketleme ve dağıtma standardı ve CI / CD, otomasyon ve DevOps'un önemli bir bileşenidir.

Docker kapsayıcısı docker container run komutu Docker kapsayıcılarını oluşturmak ve çalıştırmak için kullanılır.

liman işçisi