İşletim sistemindeki kaynakları verimli bir şekilde paylaştırarak container oluşturmaya imkan veren bir programdır.
Bilgisayarlarda yer alan işlemci ve ram işletim sistemi tarafından her zaman tam olarak kullanılmaz. Kaynaklar tam olarak kullanılmadığından bilgisayar kaynaklarını bölünerek farklı programlar tarafından verimli bir şekilde kullanılması sağlanır. Bu amaçla VMWare, Virtualbox gibi çeşitli sanallaştırma yazılımları kullanılmaktadır. Sanallaştırma yazılımları kaynakların paylaşımını yaparken yeniden bir işletim sistemi kurulumuna ihtiyaç duymaktadır. Yeniden bir işletim sistemi kurulumu beraberinde uygulamaların ihtiyaç duymadığı kaynakların gereksiz yere kullanılması neden olur. Örneğin; Kullanıcı bilgilerini saklamak için kullanılan bir uygulama ekran kaynaklarını kullanmayabilir. Ancak işletim sistemi programları ekran kartına ihtiyaç duyduğundan uygulama için gerekli olmayan ekran kartı kaynakları da kullanılmış olur. Sanallaştırma sonucu ortaya çıkan işletim sisteminin çalışması için yeniden başlatılması ve yüklenme işleminin gerçekleşmesi gerekir. Konteyner yapısında ise uygulamanın ihtiyaç duyduğu kaynaklar yazılımsal olarak paylaşılarak sanallaştırma sonucu ortaya çıkan gereksiz kaynak kullanımının önüne geçilmiş olur. Konteyner yapısında mevcut işletim sistemi kaynakları bölündüğünden uygulamaların hızlıca çalışması sağlanır. Ayrıca konteyner yapısında yer alan imaj ile uygulama için gerekli olan çalışma ortamı hazırlanarak uygulamanın taşınabilir olması sağlanır.
docker build -f Dockerfile -t docker-spring-boot .docker run -p 8085:8085 docker-spring-boot
-
docker versionDocker versiyonunu öğrenmek için version komutu kullanılır. -
docker infoSistemde yer alan imaj, konteyner, çalışan konteyner sayısı ile detaylı bilgi için info komutu kullanılır. -
docker run hello-worldİmaj çalıştırmak için run komutu kullanılır. -
docker search hello-worldİmaj aramak için search komutu kullanılır. -
docker pull hello-worldİmaj indirmek için pull komutu kullanılır. -
docker imagesİmajları listelemek için images komutu kullanılır. -
docker rmi hello-worldİmaj silmek için rmi komutu kullanılır. -
docker history hello-worldİmaj geçmişi için history komutu kullanılır. -
docker psÇalışan konteynerlerı listelemek için ps komutu kullanılır. -
docker ps -aTüm konteynerlerı listelemek için ps komutu kullanılır. -
docker stop konteyner-idÇalışan konteynerı durdurmak için stop komutu kullanılır. -
docker kill konteyner-idÇalışan konteynerı zorla durdurmak için kill komutu kullanılır. -
docker start konteyner-idDurdurulan konteynerı çalıştırmak için start komutu kullanılır. -
docker inspect konteyner-idKonteyner hakkında bilgi almak için inspect komutu kullanılır. -
docker stats konteyner-idÇalışan konteynera ait kaynak kullanımı bilgisi için komutu kullanılır. -
docker logs konteyner-idKonteynera ait günlük bilgisi için logs komutu kullanılır. -
docker rm konteyner-idKonteyner silmek için rm komutu kullanılır. -
docker run --rm hello-worldKonteyner çalışmasını bitirdikten sonra otomatik olarak silinmesi için -rm komutu kullanılır. -
docker rm $(docker ps -aq)vedocker sytem pruneTüm konteynerları silmek için bu komutlar kullanılır.
Özel bir imaj oluşturmak için Dockerfile kullanılır.
FROMKullanılacak imajı ifade eder.LABELİmaj etiketini ifade eder.RUNÇalıştırılacak komutları ifade eder. (İmaj için gerekli yüklemeler için kullanılır.)CMDÇalıştırılacak komutları ifade eder. (İmaj için gerekli yüklemeler yapıldıktan sonra çalıştırılacak komutlar için kullanılır.)ENTRYPOINTÇalıştırılacak komutların yolunu ifade eder.COPYİmaja kopyalanacak dosyaları ifade eder.WORKDIRÇalışma dizinini ifade eder.ENVOrtam değişkenlerini ifade eder.EXPOSEİmaj port numarasını ifade eder.VOLUMEİmaja paylaşılacak/geçirilecek dosyaları ifade eder.
Docker Compose, içerisinde bir ya da birden fazla container bulunduran bir konfigürasyon dosyasıdır. Bu sayede birbiriyle etkileşimli çalışması gereken uygulamalarınızı tek bir dosyada birleştirip kullanabilirsiniz.
docker-compose build <service_name>docker-compose.yml dosyasında yaratılan servisleri build eder.docker-compose updocker-compose.yml dosyasını çalıştırır ve servisleri ayağa kaldırır.docker-compose logsDocker Compose loglarına erişebilirsiniz.docker-compose downDocker Compose sonlandırır.