What is a Docker Container? Docker Demo || Docker Tutorial 2
İçindekiler:
- Docker Çalıştır Komutu
- Kapsayıcıyı Ön Planda Çalıştırma
- Kapsayıcıyı Ayrı Modda Çalıştırma
- Çıkıştan Sonra Konteyneri Çıkarın
- Kapsayıcı Adını Ayarlama
- Kapsayıcı Bağlantı Noktalarını Yayınlama
- Veri Paylaşımı (Montaj Birimleri)
- Kapsayıcıyı Etkileşimli Olarak Çalıştırma
- Sonuç
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_ipbelirtilmezse, varsayılan olarak0.0.0.0.protocolbelirtilmezse, varsayılan olarak TCP'dir. Birden çok bağlantı noktasını yayınlamak için birden çok-pseç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çeneklerrw(okuma-yazma) vero(salt okunur) olabilir). Hiçbir seçenek belirtilmezse, varsayılan değerrw.
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
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.
Örneklerle Linux kesme komutu
Kes, belirtilen dosyalardan veya borulu verilerden satır parçalarını kesmenizi ve sonucu standart çıktıya yazdırmanızı sağlayan bir komut satırı yardımcı programıdır. Bu öğreticide, pratik örnekler ve en yaygın kesim seçeneklerinin ayrıntılı açıklamaları ile Linux kesim komutunun nasıl kullanılacağını göstereceğiz.
Örneklerle Linux tarih komutu
Date komutu sistem tarihini görüntüler veya ayarlar. En çok tarih ve saati farklı formatlarda yazdırmak ve gelecekteki ve geçmiş tarihleri hesaplamak için kullanılır.
Örneklerle Linux tee komutu
Tee komutu standart girdiden okur ve aynı anda hem standart çıktıya hem de bir veya daha fazla dosyaya yazar. Tee en yaygın olarak borular aracılığıyla diğer komutlarla birlikte kullanılır.







