Docker Konteynerleriyle Çalışma

0 Hisse senetleri
0
0
0
0

giriiş

Docker, yazılım uygulamalarına çalışmak için ihtiyaç duydukları her şeyi içeren bir dosya sistemi sağlamak için kullanılan popüler bir konteynerleştirme aracıdır. Docker konteynerleri kullanmak, yazılımın nerede dağıtılırsa dağıtılsın aynı şekilde davranmasını sağlar, çünkü çalışma ortamı son derece tutarlıdır. Bu eğitimde, Docker imajları ve Docker konteynerleri arasındaki ilişkiye kısa bir genel bakış sunacağız. Ardından, konteynerlerin nasıl çalıştırılacağını, başlatılacağını, durdurulacağını ve kaldırılacağını daha yakından inceleyeceğiz.

Genel Bakış

Docker imajını, Docker kapsayıcıları oluşturmak için kullanılan yalın bir şablon olarak düşünebiliriz. İmaj dosyaları genellikle bir kök dosya sistemiyle başlar ve dosya sistemi değişikliklerini ve bunlara karşılık gelen yürütme parametrelerini düzenli, salt okunur katmanlara ekler. Tipik bir Linux dağıtımının aksine, bir Docker imaj dosyası genellikle yalnızca uygulamayı çalıştırmak için gereken yalın donanımı içerir. İmaj dosyaları durumsuzdur ve değişmez. Bunun yerine, Docker kapsayıcıları için başlangıç noktasını oluştururlar. İmaj dosyaları, üzerine bir okuma-yazma katmanı eklenerek bir kapsayıcı oluşturan "docker run" komutuyla hayata geçirilir. Bu okuma-yazma katmanının üzerine yerleştirilen salt okunur katmanların birleşimine birleşik dosya sistemi denir. Çalışan bir kapsayıcıdaki bir dosyada değişiklik yapıldığında, dosya salt okunur alandan değişikliklerin uygulandığı okuma-yazma katmanına kopyalanır. Okuma-yazma katmanındaki sürüm, orijinal dosyayı gizler ancak silmez. Okuma-yazma katmanındaki değişiklikler yalnızca ayrı bir kapsayıcı örneğinde bulunur. Bir kapsayıcı silindiğinde, bunları korumak için herhangi bir adım atılmadığı sürece tüm değişiklikler kaybolur.

Docker kapsayıcılarıyla nasıl çalışılır
  1. İki Docker konteyneri oluşturun
  2. İlk konteyneri yeniden başlatın.
  3. Her iki konteyneri de silin.

Konteynerlerle çalışma

Her komutu kullandığınızda docker çalıştırma Kullandığınızda, belirttiğiniz görüntüden yeni bir kapsayıcı oluşturur. Bu durum kafa karışıklığına yol açabilir, bu yüzden birkaç örneğe bakalım:

Adım 1: İki kapsayıcı oluşturun

Yürütme komutu liman işçisi Aşağıdaki, temel Ubuntu imajını kullanarak yeni bir kapsayıcı oluşturur. -T Bize bir terminal veriyor ve -Ben Bizim onunla etkileşim kurmamızı sağlar. Ubuntu temel görüntüsünün Docker dosyasındaki varsayılan komutu takip ederiz: bashOnun bizi bir kabuk içinde bırakmasına güveniyoruz.

docker run -ti ubuntu

Komut satırı, kök kullanıcı olarak konteynerin içinde olduğumuzu ve ardından 12 karakterlik konteyner kimliğini gösterecek şekilde değişecektir.

root@11cc47339ee1:/#

Klasörde metin yansımasıyla bir değişiklik yaptık /geçici Bir konteyner oluşturuyoruz, sonra kullanıyoruz kedi Başarıyla kaydedildiğini teyit etmek için kullanırız.

echo "Example1" > /tmp/Example1.txt
cat /tmp/Example1.txt
Output
Example1

Şimdi konteynerden çıkalım.

exit

Docker kapsayıcıları, verdikleri komut tamamlanır tamamlanmaz çalışmaz, bu nedenle kapsayıcımız bash kabuğundan çıktığımızda durduruldu. Eğer komut not: Çalışan container'ları gösterme komutunu çalıştırdığımızda komutumuzu göremeyiz.

docker ps
Output
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

Eğer bayrak -A Tüm konteynerları, durmuş veya çalışıyor olarak gösteren komutu ekleyin ve konteynerımız listede görünecektir:

docker ps -a
Output
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
11cc47339ee1 ubuntu "/bin/bash" 6 minutes ago Exited (127) 8 seconds ago small_sinoussi

Konteyner oluşturulduğunda, kendisine bir konteyner kimliği ve rastgele oluşturulmuş bir ad verildi. Bu durumda, 11cc47339ee1 Konteyner Kimliği ve küçük_sinüsler Rastgele oluşturulmuş bir isimdir. ps -a Bu değerler, konteynerin oluşturulduğu imaj (Ubuntu), konteynerin oluşturulduğu tarih (altı dakika önce) ve çalıştırıldığı komut (/bin/bash) ile birlikte gelir. Çıktıda ayrıca konteynerin durumu (Çıkış) ve konteynerin bu durumda bulunduğu süre (6 saniye önce) de verilir. Konteyner hala çalışıyor olsaydı, "çalışıyor" durumunu ve ardından çalıştığı süreyi görürdük.

Aynı komutu tekrar çalıştırdığımızda tamamen yeni bir kapsayıcı oluşturulacaktır:

docker run -ti ubuntu

Bunun yeni bir kapsayıcı olduğunu, komut satırındaki tanımlayıcının farklı olmasından anlayabiliriz; ancak Example1 dosyamızı aradığımızda onu bulamıyoruz:

cat /tmp/Example1
Output
cat: /tmp/Example1: No such file or directory

Veriler kaybolmuş gibi görünebilir, ancak kaybolmadı. Şimdi ikinci konteynerden çıkıp, oluşturduğumuz dosyanın bulunduğu ilk konteynerin ve ikinci konteynerin hâlâ sistemde olduğunu göreceğiz.

exit

Konteynerleri tekrar listelediğimizde ikisi de karşımıza çıkıyor:

docker ps -a
Output
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6e4341887b69 ubuntu "/bin/bash" About a minute ago Exited (1) 6 seconds ago kickass_borg
11cc47339ee1 ubuntu "/bin/bash" 13 minutes ago Exited (127) 6 minutes ago small_sinoussi

Adım 2: İlk konteyneri yeniden başlatın

Mevcut bir konteyneri yeniden başlatmak için, ona bağlanmak için -a bayrağını, etkileşimli hale getirmek için -i bayrağını ve ardından konteyner kimliğini veya adını kullanarak başlat komutunu kullanırız. Aşağıdaki komutta konteyner kimliğinizi değiştirdiğinizden emin olun:

docker start -ai 11cc47339ee1

Kendimizi bir kez daha container bash isteminde buluyoruz ve daha önce oluşturduğumuz dosyayı cat ettiğimizde hala orada olduğunu görüyoruz.

cat /tmp/Example1.txt
Output
Example1

Artık konteynerden çıkabiliriz:

exit

Bu çıktı, konteyner içinde yapılan değişikliklerin, konteyneri durdurup başlattığınızda da devam ettiğini gösterir. İçerik yalnızca konteyner kaldırıldığında silinir. Bu örnek ayrıca, değişikliklerin yalnızca ilgili konteynerle sınırlı olduğunu da gösterir. İkinci konteyneri başlattığımızda, görüntünün orijinal durumunu yansıtıyordu.

Adım 3: Her iki kapsayıcıyı da silin

İki konteyner oluşturduk ve kısa eğitimimizi bunları kaldırarak bitireceğiz. Yalnızca durdurulmuş konteynerlerde çalışan docker rm komutu, bir veya daha fazla konteynerin adını veya kimliğini belirtmenize olanak tanır, böylece her ikisini de aşağıdaki şekilde kaldırabiliriz:

docker rm 11cc47339ee1 kickass_borg
Output
11cc47339ee1
kickass_borg

Hem konteynerlar hem de içlerinde yaptığımız tüm değişiklikler artık yok.

Sonuç

Tarife yakından bakalım. docker çalıştırma Her çalıştırıldığında otomatik olarak yeni bir konteyner oluşturduğunu gördük. Durdurulmuş bir konteyneri nasıl bulacağımızı, başlatacağımızı ve ona nasıl bağlanacağımızı da gördük. Konteyner yönetimi hakkında daha fazla bilgi edinmek isterseniz, Docker Konteyner Adlandırma Kılavuzu: Yeni Başlayanlar İçin 3 İpucu ilginizi çekebilir.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Ayrıca Şunları da Beğenebilirsiniz