Ana içeriğe geç

Kapsayıcıları Derlemek, Çalıştırmak ve Yönetmek için En İyi 18 Docker Komutu

Bu rehber, kapsayıcı temellerinden volumelara ve ağ yönetimine kadar temel Docker komutlarını açıklayarak, uygulamaları farklı ortamlarda güvenle yönetmenize yardımcı olur!
Laiba Siddiqui
Laiba Siddiqui

Ücretsiz Hesabınızı Oluşturun

Alıştırma and program your progress.

Google ile devam edinDevam ederek, Kullanım Koşullarımızı ve Gizlilik Politikamızı kabul etmiş ve verilerinizin ABD'de saklandığını onaylamış olursunuz.

Docker, uygulamaları farklı ortamlarda tutarlı bir şekilde derlemesi, paylaşması ve çalıştırması gereken geliştiriciler ve veri profesyonelleri için başvurulan bir araç haline geldi. İster yerel geliştirme için kapsayıcılar başlatın ister üretimde mikro hizmetler dağıtın, Docker komutlarına hakim olmak hayati önem taşır.

Bu rehberde, iş akışınızı hızlandıracak ve Docker ile çalışmayı daha sorunsuz ve verimli hale getirecek, imajlar, kapsayıcılar, ağ, volumelar ve Compose’u kapsayan 18 temel Docker komutunu adım adım anlatacağım.

Docker nedir?

Docker, uygulamalar geliştirmek, dağıtmak ve çalıştırmak için bir platformdur. Uygulamanızı altında yatan altyapıdan ayırmanıza olanak tanır; bu sayede yazılım teslimini hızlandırır ve kurulumunuzu uygulamalarınızı yönettiğiniz şekilde yönetmenizi sağlar.

Docker, kapsayıcılar adı verilen hafif paketleri kullanarak uygulamaları izole edilmiş ortamlarda çalıştırır; bu paketler, bağımlılıklar ve kurulumlar gibi bir uygulamanın çalışması için gereken her şeyi içerir ve sistem kaynaklarından tasarruf etmenize yardımcı olur. Kapsayıcıları ekip arkadaşlarımızla kolayca paylaşabilir, aynı anda birkaçını çalıştırabilir ve hepsini Docker’ın araçları ve platformu ile yönetebiliriz.

Docker’ı pek çok amaçla kullanabiliriz; örneğin:

  • Esnek dağıtım ve ölçekleme.
  • Aynı donanım üzerinde daha fazla iş yükü çalıştırma.
  • Uygulamaların hızlı ve tutarlı teslimi.

Docker kullanırken imajlar, kapsayıcılar, ağlar, eklentiler ve volumelar gibi farklı Docker nesneleriyle çalışırız. Bunlar, Docker kurulumunun yapı taşlarını oluşturur. Docker, kaputun altında tüm bunları çalıştırmak için Linux çekirdeğinin özelliklerinden yararlanır. Biz ise terminalde basit komutlarla etkileşim kurarız ve her Docker komutu docker ile başlar.

> Yeni başlıyorsanız, kapsayıcılaştırma temellerini öğrenmek için pratik bir başlangıç sunan Introduction to Docker kursunu inceleyin.

Temel Docker Komutları

Artık Docker’ın ne olduğunu ve nasıl çalıştığını ele aldığımıza göre, en yaygın komutlardan bazılarına bakalım. Bunlar, günlük iş akışınızda kapsayıcıları derlemenize, çalıştırmanıza ve yönetmenize yardımcı olacaktır.

docker --version ve docker info

Docker komutlarında -- ile başlayan her şeye bayrak (flag) denir. 

Örneğin, --version kullandığınız Docker CLI sürümünü gösteren bir bayraktır. Ayrıca docker version (bayrak olmadan) komutunu kullanarak tüm Docker bileşenleri için ayrıntılı sürüm bilgisi alabilirsiniz. 

Çıktı iki bölüme ayrılır:

  • Client, Docker CLI ve ilgili araçlar hakkında bilgi gösterir.
  • Server, Docker Engine ve üzerinde çalıştığı ortamla ilgili ayrıntıları gösterir.

Bu çıktıyı, özel bir şablonla --format bayrağını kullanarak biçimlendirebilirsiniz.

docker info komutu Docker kurulumunuzun tam bir özetini verir. docker system info ile aynıdır, sadece adı daha kısadır. Çekirdek sürümü, kapsayıcı ve imaj sayıları gibi sistem genelindeki ayrıntıları görürsünüz. 

Depolama sürücünüze bağlı olarak havuz adları ve veri dosyaları gibi bilgiler de görebilirsiniz. docker version komutunda olduğu gibi, çıktıyı --format veya -f ile biçimlendirebilirsiniz.

docker pull <image>

Pull komutu, bir Docker imajını genellikle Docker Hub’dan indirir; bu, hiçbir kurulum yapmadan kullanabileceğiniz, önceden oluşturulmuş imajların bulunduğu herkese açık bir kütüphanedir. Komutu docker pull <image> veya sadece docker pull şeklinde çalıştırabilirsiniz; ikisi de aynı işi yapar.

  • Tam sözdizimi şöyledir: docker image pull [OPTIONS] NAME[:TAG|@DIGEST]

Bir etiket belirtmezseniz, Docker varsayılan olarak :latest etiketini kullanır. Örneğin: docker image pull debian , debian:latest imajını çeker.

Ayrıca, bant genişliğini sınırlamak veya imaj doğrulamayı atlamak gibi indirme davranışını özelleştirmek için komuttan sonra seçenekler ekleyebilirsiniz. Aşağıdaki görsel, mevcut tüm seçenekleri ve işlevlerini gösterir.

docker pull komutu için seçenekler

docker pull komutu için seçenekler. Kaynak: Docker dokümanları

docker run <image>

docker run <image> komutu, belirtilen bir imajdan yeni bir kapsayıcı oluşturur ve başlatır; yani imajı taze bir kapsayıcıda çalıştırır. docker container run için kısaltmadır ve ikisi aynı şekilde çalışır.

  • Temel sözdizimi şöyledir: docker container run [OPTIONS] IMAGE [COMMAND] [ARG...]

Daha önce bir kapsayıcı çalıştırdıysanız ve içindeki önceki değişikliklerle tekrar başlatmak istiyorsanız şu komutu kullanın: docker start <container>.

Run komutu, kapsayıcınızın nasıl çalışacağını özelleştirmek için çok sayıda seçeneğe sahiptir. Yaygın olan birkaçını örneklerle ele alalım:

Bayrak

Komut örneği

Açıklama

-- name

docker run --name test -d nginx:alpine

nginx:alpine imajını kullanarak test adlı kapsayıcı için özel bir tanımlayıcı belirler.

-w,--workdir

docker run -w /path/to/dir/ -i -t ubuntu pwd

Komutu belirtilen dizin içinde çalıştırır; bu örnekte /path/to/dir/

--pid

docker run --rm -it --pid=host alpine

Varsayılan olarak tüm kapsayıcılarda süreçlerin ayrılmasını sağlayan PID ad alanı etkindir.

Örnek, --pid = host seçeneğiyle bir alpine kapsayıcısı çalıştırır.

--cidfile

docker run --cidfile /tmp/docker_test.cid ubuntu echo "test"

Bu, bir kapsayıcı oluşturur ve konsola test yazar.

cidfile bayrağı, Docker’ın yeni bir dosya oluşturup kapsayıcı kimliğini bu dosyaya yazmayı denemesini sağlar.

docker stop <container> ve docker start <container>:

docker start <container> komutu, durdurulmuş bir veya daha fazla kapsayıcıyı başlatır. Örneğin, docker start my_container içinde, my_container başlatmak istediğimiz kapsayıcının adıdır. Şu takma adını da kullanabiliriz: docker container start.

  • Tam sözdizimi: docker container start [OPTIONS] CONTAINER [CONTAINER...]

Benzer şekilde, docker stop çalışan bir veya daha fazla kapsayıcıyı durdurur. Örneğin, docker stop my_container komutunda my_container, çalışan kapsayıcının adıdır.

Bunun da bir takma adı vardır: docker container stop. 

  • Tam sözdizimi şöyledir: docker container stop [OPTIONS] CONTAINER [CONTAINER...]

start komutunda olduğu gibi stop komutunun da kapsayıcıların nasıl durdurulacağını özelleştiren seçenekleri vardır. Birkaç kullanışlı seçeneği aşağıda vurguluyoruz:

docker stop komutu için seçenekler

docker stop için seçenekler. Kaynak: Docker dokümanları

Docker İmajlarıyla Çalışma

İmajlar her kapsayıcının temelidir. Bu bölümde, yaygın komutlarını kullanarak Docker imajlarını nasıl oluşturacağımıza, yöneteceğimize ve inceleyeceğimize bakacağız.

docker build

docker build komutu, Docker’ın en sık kullanılan özelliklerinden biridir. Genişletilmiş kullanım senaryolarını destekleyen daha büyük bir ekosistemin parçası olsa da burada basit bir Dockerfile’dan imaj oluşturmayı ele alacağız. 

Dockerfile, Docker’ın bir imaj oluşturmak için kullandığı adım adım talimatları içeren, uzantısız düz metin bir dosyadır. İşte nasıl oluşturacağınız:

  1. Uygulamanızın kök dizininde, aşağıdaki içeriğe sahip Dockerfile adlı bir dosya oluşturun:
# syntax=docker/dockerfile:1

FROM node:lts-alpine
WORKDIR /app
COPY . .
RUN yarn install --production
CMD ["node", "src/index.js"]
EXPOSE 3000

Bu Dockerfile, Node.js ve Yarn içeren hafif bir temel imajla başlar. Uygulamanızın kaynak kodunu imaja kopyalar, bağımlılıkları kurar ve uygulamanın nasıl başlatılacağını tanımlar.

  1. Şimdi aşağıdaki komutla imajı derleyin:
docker build -t getting-started.

-t bayrağı imaja etiket eklemenizi sağlar. Bu örnekte adına getting-started. dedik. Sondaki ., Docker’a Dockerfile’ı geçerli dizinde aramasını söyler.

docker images

docker images komutu, üst düzey tüm imajlarınızı, bunların depolarını, etiketlerini ve boyutlarını listeler. Şu takma adları da kullanabilirsiniz:

  • docker image list
  • docker image ls

Sözdizimi: docker image ls [OPTIONS] [REPOSITORY[:TAG]]

Bu komut birkaç seçeneği destekler. Örneğin, tüm imajları, ara imajlar dahil, göstermek için -a veya --all bayrağını şu şekilde ekleyebilirsiniz: docker images -a.

docker rmi <image>

docker rmi <image> komutu, sisteminizden bir veya daha fazla imajı kaldırır. Bir imajın birden fazla etiketi varsa, komutu belirli bir etiketle çalıştırmak yalnızca o etiketi kaldırır. Ancak etiket, imaja bağlı tek etiketse hem etiket hem de imaj kaldırılır.

Şu takma adları da kullanabilirsiniz:

  • docker image remove
  • docker image rm

Sözdizimi: docker image rm [OPTIONS] IMAGE [IMAGE...]

Çalışan bir kapsayıcı tarafından kullanılmakta olan bir imajı kaldırmanız gerekiyorsa, -f veya --force seçeneğini ekleyerek zorlamanız gerekir.

Docker Kapsayıcı Yönetimi

Uygulamamız geliştikçe kapsayıcıları başlatma, durdurma, inceleme veya kaldırma gibi işlemleri sıkça yapmamız gerekir. Bu nedenle, günlük iş akışınızda kapsayıcıları yönetmek için en kullanışlı Docker komutlarını anlatacağım.

docker exec <container> <command>

docker exec komutu, çalışan bir kapsayıcı içinde onu yeniden başlatmadan bir komut yürütmenizi sağlar. Özellikle hata ayıklama veya kapsayıcı içinde elle bir şeyleri kontrol etmek için kullanışlıdır. Takma adı: docker container exec.

Komut yalnızca kapsayıcının ana süreci (PID 1) çalışıyorsa çalışır. Kapsayıcı yeniden başlarsa otomatik olarak tekrar çalışmaz.

Sözdizimi: docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

Bununla birlikte kullanılabilecek çeşitli isteğe bağlı bayraklar vardır. Örneğin, --privileged komuta kapsayıcı içinde genişletilmiş izinler verir. Tüm seçenekler için resmi dokümanlara göz atın.

Kapsayıcıda bir komut çalıştırma örneği:

docker exec -d mycontainer touch /tmp/execWorks

touch komutu, arka planda çalışan mycontainer kapsayıcısının içinde /tmp/execWorks adlı yeni bir dosya oluşturur.

docker logs <container>

docker logs komutu, belirli bir kapsayıcının günlüklerini görüntülemenizi sağlar ve yürütme sırasında standart çıktı ve hataya yazılan her şeyi gösterir. Takma adı: docker container logs

Sözdizimi: docker container logs [OPTIONS] CONTAINER

Ekleyebileceğiniz bir dizi kullanışlı seçenek vardır. Örneğin:

  • --details, ortam değişkenleri ve etiketler gibi ek öznitelikleri gösterir.
  • --until, belirli bir zamana kadar olan günlükleri getirmenizi sağlar.
  • docker logs -f --until=2s test, test kapsayıcısının günlük çıktısını takip eder ve son iki saniyelik günlükleri gösterdikten sonra durur.

İşte docker logs ile kullanabileceğimiz tüm seçenekler:

docker log <container> için seçenekler

docker log <container> için seçenekler. Kaynak: Docker dokümanları

docker rm <container>

docker rm <container> komutu, sisteminizden bir veya daha fazla kapsayıcıyı kaldırır. Şu takma adları da kullanabilirsiniz:

  • docker container remove
  • docker container rm

Sözdizimi: docker container rm [OPTIONS] CONTAINER [CONTAINER...]

Bu komutla birlikte kullanabileceğiniz birkaç isteğe bağlı bayrak vardır. İşte bazıları:

docker rm <container> için seçenekler

docker rm <container> için seçenekler. Kaynak: Docker dokümanları

Örneğin, /redis bağlantısıyla tanımlanan kapsayıcıyı kaldırmak için docker rm /redis kullanabilirsiniz. Ancak, bu komutun yalnızca çalışan kapsayıcıları kaldırdığını unutmayın. 

Durdurulmuş kapsayıcıları kaldırmak istiyorsanız, docker container prune kullanmanız gerekir. Ortamınızı temiz tutmak için, bu Docker prune rehberi ile kullanılmayan Docker kaynaklarını güvenle nasıl kaldıracağınızı öğrenin.

docker restart <container>

docker restart <container> komutu, bir veya daha fazla kapsayıcıyı durdurur ve ardından yeniden başlatır. Takma adı: docker container restart. 

Sözdizimi: docker restart [OPTIONS] CONTAINER [CONTAINER...]

Restart komutunun, kapsayıcı yeniden başlatmalarını özelleştiren birkaç kullanışlı seçeneği vardır. Aşağıda her iki seçenek de örneklerle birlikte verilmiştir.

Seçenek

Açıklama

Örnek

-s, --signal

Kapsayıcıya gönderilecek sinyal.

docker restart -s SIGTERM mycontainer

-t, --timeout

Kapsayıcıyı öldürmeden önce beklenecek saniye.

docker restart -t 10 mycontainer

> Pratik yapmak için, başlangıçtan ileri seviyeye uzanan Docker proje fikirlerini inceleyin.

Docker Ağ Yönetimi

Kapsayıcı ağ iletişimi, kapsayıcıların birbirleriyle ve harici iş yükleriyle iletişim kurmasını sağlar. Varsayılan olarak kapsayıcılarda ağ etkinleştirilmiştir ve giden bağlantılar kurabilirler; ancak hangi ağda olduklarını veya hangi iş yüklerine bağlı olduklarını kendiliğinden bilmezler.

none ağ sürücüsünü (ağ bağlantısını devre dışı bırakır) kullanmadığınız sürece kapsayıcılar IP adresleri, ağ geçitleri ve DNS gibi ağ öğeleriyle etkileşime girebilir. 

Kullanabileceğiniz bazı yaygın docker ağ komutlarını inceleyelim.

docker network ls

docker network ls komutu, Docker Engine tarafından bilinen tüm ağları listeler; buna bir küme içindeki birden fazla host üzerindeki ağlar da dahildir. Takma adı: docker network list.

  • Şu sözdizimine sahiptir: docker network ls [OPTIONS]

Aşağıdaki görselde gösterildiği gibi birden fazla seçenekle kullanabilirsiniz. 

Varsayılan olarak bu komut her ağın şunlarını gösterir:

  • ID
  • Ad
  • Sürücü (Driver)
  • Kapsam (Scope)

Çıktıyı özelleştirmek için bayraklar kullanabilirsiniz. Örneğin, --no-trunc bayrağı, kısaltılmışlar yerine tam ağ kimliklerini gösterir. Komutun kullanımı şöyledir:

docker network ls --no-trunc

docker network create <network-name>

docker network create komutu yeni bir Docker ağı oluşturur. Varsayılan olarak bridge sürücüsünü kullanır; farklı bir sürücü belirtmek için --driver (veya -d) bayrağını kullanabilirsiniz.

Docker, şunlar gibi yerleşik ağ sürücülerini destekler:

  • bridge: tek host’lu ağlar için.
  • overlay: Swarm modunda çoklu host ağları için.

Gerekirse üçüncü taraf veya özel sürücüler de kullanabilirsiniz.

  • Temel sözdizimi: docker network create [OPTIONS] NETWORK

Komut, çeşitli amaçlar için pek çok seçenek sunar. Tüm seçeneklerin listesini görmek için resmi dokümantasyona bakın.

İşte bir bridge ağı oluşturma örneği:

docker network create -d bridge my-bridge-network

Bridge ağları tek bir Docker Engine ile sınırlıdır; bu yüzden farklı host’lardaki kapsayıcıları birbirine bağlamazlar.

Swarm modu etkinleştirildikten sonra, birden fazla Docker host’unu kapsayan bir ağ oluşturabilirsiniz:

docker network create --scope=swarm --attachable -d overlay my-multihost-network

> Docker ile Kubernetes’i karşılaştırmak ister misiniz? Kubernetes vs Docker incelememiz, temel farkları ve kullanım alanlarını kapsar.

Docker Volumelar

Docker volumelar, bir kapsayıcı dursa veya kaldırılsa bile kalıcı olması gereken verileri depolamak için kullanılır. Bunları açıkça oluşturabilir veya bir kapsayıcı başlatırken Docker’ın otomatik olarak oluşturmasına izin verebilirsiniz.

Volumelar, ana sistemde saklanır ancak ana makinenin çekirdek dosyalarından yalıtılmıştır. Bağlama (bind mount) benzeri şekilde kapsayıcılara bağlanırlar; ancak taşınabilirlik ve güvenlik açısından daha iyidirler. 

İlgili bazı docker volume komutlarını inceleyelim: 

docker volume ls

docker volume ls komutu, Docker’ın bildiği tüm volumeları listeler. Takma adı: docker volume list.

  • Sözdizimi: docker volume ls [OPTIONS]

Bu komut, çıktıyı filtrelemenize veya biçimlendirmenize yardımcı olan birkaç isteğe bağlı bayrağı destekler — işte bunlar:

docker volume ls komutu için seçenekler.

docker volume ls komutu için seçenekler. Kaynak: Docker dokümanları

docker volume create <volume-name>

docker volume create komutu, kalıcı veri depolamak için yeni bir volume oluşturur. Bir ad vermezseniz Docker sizin için otomatik olarak bir ad üretir.

Volumelar oluşturmak, verilerin tek bir kapsayıcının ömrünün ötesinde kalmasını istediğinizde yaygın bir adımdır.

  • Sözdizimi: docker volume create [OPTIONS] [VOLUME_NAME]

Bir volume oluşturma ve ardından bir kapsayıcıyı bunu kullanacak şekilde yapılandırma örneğine bakalım:

docker volume create hello
docker run -d -v hello:/world busybox ls /world

Bu örnekte, hello adlı bir volume oluşturulur. Ardından, bir kapsayıcıya /world yolunda bağlanır. Bu, kapsayıcının o volumeden veri yazmasına veya okumasına olanak tanır.

Birden fazla kapsayıcı aynı volumeyi kullanabilir; biri veri yazarken diğerinin okuması gerektiğinde bu kullanışlıdır.

Not: Volume adları sürücüler arasında benzersiz olmalıdır. Aynı volume adını iki farklı depolama sürücüsünde kullanamazsınız.

Docker Compose Komutları

Docker Compose, basit bir YAML dosyası kullanarak çoklu kapsayıcı uygulamaları yönetmeyi kolaylaştırır. Geliştirme, test, hazırlık, üretim ve CI gibi farklı ortamları destekler. Tek bir komutla servisleri kontrol edebilir, ağları kurabilir ve volumeları yönetebilirsiniz — hepsi tek bir yerde.

Bazı yaygın compose komutlarını inceleyelim: 

docker-compose up

docker compose up komutu, bir servis için kapsayıcıları derler, (yeniden) oluşturur, başlatır ve onlara eklenir. Kapsayıcılar henüz çalışmıyorsa, bağlı servisleri de otomatik olarak başlatır.

  • Sözdizimi: docker compose up [OPTIONS] [SERVICE...]

Varsayılan olarak bu komut, tüm kapsayıcıların çıktısını birleştirir. Belirli servislere odaklanmak isterseniz şunları yapabilirsiniz:

  • --attach bayrağını kullanarak belirli servislere eklenmek
  • --no-attach bayrağını kullanarak diğerlerini hariç tutmak

Örneğin, docker compose up --no-attach <service-name>, günlüklerden hariç tuttuğunuz servis dışında tüm servisleri başlatır.

Komut tamamlandığında kapsayıcılar da durur. Arka planda çalışmaya devam etmeleri için --detach bayrağını kullanın: 

docker compose up --detach

Bu komutu çalıştırmadan önce, docker-compose.yml dosyanızın bulunduğu dizine (cd) geçtiğinizden emin olun.

docker-compose down

docker compose down komutu, docker compose up tarafından oluşturulan kapsayıcıları durdurur ve kapsayıcıları, imajları, ağları ve volumeları kaldırır. 

  • Sözdizimi: docker compose down [OPTIONS] [SERVICES]

Bununla birlikte kullanabileceğiniz çeşitli seçenekler vardır; bunlardan bazıları şunlardır:

docker compose down komutu için seçenekler.

docker compose down komutu için seçenekler. Kaynak: Docker dokümanları.

Varsayılan olarak komut şunları kaldırır:

  • Compose dosyasında tanımlanan servislerin kapsayıcıları.
  • Compose dosyasının networks bölümünde tanımlanan ağlar.
  • Varsayılan ağ (kullanılıyorsa).

Aşağıdakiler varsayılan olarak kaldırılmaz:

  • Harici olarak tanımlanan ağlar ve volumelar.
  • İsimsiz volumelar (adı olmayan volumelar).

İsimsiz volumeların docker compose up komutunu tekrar çalıştırdığınızda otomatik olarak bağlanmamasının nedeni adlarının olmamasıdır. Kalıcı veri depolamaya ihtiyacınız varsa, adlandırılmış volumelar veya bind mount kullanmak daha iyidir.

Docker Komutlarını Kullanırken En İyi Uygulamalar

Docker, uygulamaları kapsayıcılarda derlemek, dağıtmak ve çalıştırmak için güçlü bir yöntemdir. Ancak onu iyi kullanmak ve kurulumunuzun verimli ve ölçeklenebilir olmasını sağlamak için bazı en iyi uygulamaları takip etmeniz gerekir.

Kalıcı veriler için Docker volumelarını kullanın

Varsayılan olarak, kapsayıcı dosyaları, kapsayıcı kaldırıldığında kaybolan yazılabilir bir katmanda saklanır! Bu katman her kapsayıcıya özeldir ve kolayca erişilebilir değildir. Docker, verileri kalıcı kılmak için farklı türde bağlamalar (mount) kullanır; bunlardan biri volumelardır; Docker daemon tarafından yönetilir ve ana makinede saklanır. 

Volumelar şunları yapmamızı sağlar:

  • Bir kapsayıcı silinse bile verileri korumak.
  • Performans açısından kritik verileri ana makine seviyesinde hızla depolamak.
  • Depolamayı Docker üzerinden kolayca yönetmek.

Uzun vadeli veriler veya birden fazla kapsayıcının paylaşımlı erişime ihtiyaç duyduğu durumlar için idealdirler. Yalnız, dosyalara doğrudan ana makineden erişmeniz gerekiyorsa volumelar tamamen Docker tarafından yönetildiği için bind mount daha uygun olabilir.

Docker Compose ile otomatikleştirin

Çok sayıda kapsayıcıyı elle yönetmek bunaltıcı hale gelebilir. Docker Compose, her şeyi tek bir YAML dosyasında tanımlamanıza olanak tanıyarak işleri sadeleştirir ve inşa etmeye odaklanmanızı sağlar.

Bunun takip etmeye değer bir en iyi uygulama olmasının nedenleri:

  • Tek bir basit komut: Servislerinizi tek seferde başlatın, durdurun, ölçeklendirin veya yeniden oluşturun.
  • Herkes için tutarlılık: Geliştirme, test veya üretimde olun, Compose ortamları hizalı tutar; böylece “benim makinemde çalışıyor” sorunlarıyla uğraşmazsınız.
  • Yerleşik ağ: Compose, servislerinizin IP yerine servis adlarını kullanarak kolayca iletişim kurabileceği paylaşımlı bir ağ oluşturur.
  • Kolay ölçekleme: --scale bayrağıyla servisleri hızla arttırıp azaltabilirsiniz; bu da uygulamanızın farklı yükleri nasıl karşıladığını test etmek için harikadır.
  • Açık ve işbirliğine uygun yapılandırma: Kapsayıcılar, ağlar ve volumelar dahil tüm kurulumunuz sürüm kontrollüdür ve okunabilir durumdadır.

Sonuç

Docker ilk başta çok şeymiş gibi gelebilir; ancak temel komutlara alıştıktan sonra pek çok olasılık sunar. İlk kapsayıcınızı çalıştırmaktan ağları, volumeları ve servisleri yönetmeye kadar, artık kapsayıcılaştırılmış uygulamaları güvenle derleyip çalıştırmak için daha donanımlısınız.

Ve öğrenmeye devam etmek istiyorsanız, sıradaki harika kaynaklar şunlar:

SSS

En sık kullanılan Docker komutları nelerdir?

En yaygın Docker komutları arasında docker run, docker ps, docker build, docker pull ve docker-compose up bulunur.

Docker volumelar bind mount’tan nasıl farklıdır?

Docker volumelar taşınabilirlik ve veri kalıcılığı için Docker tarafından yönetilir; bind mount ise ana makinedeki belirli bir dosya yoluna bağlıdır.

Tek bir komutla birden fazla kapsayıcı çalıştırabilir miyim?

Evet, bir docker-compose.yml dosyasıyla docker-compose up kullanmak, birden fazla servisi aynı anda çalıştırmanıza olanak tanır.

docker start ile docker run arasındaki fark nedir?

docker run yeni bir kapsayıcı oluşturur ve başlatır; docker start ise mevcut, durdurulmuş bir kapsayıcıyı yeniden başlatır.

Tüm durdurulmuş kapsayıcıları nasıl listelerim?

Durdurulmuş olanlar dahil tüm kapsayıcıları görmek için docker ps -a komutunu kullanın.

docker exec komutunun amacı nedir?

Çalışan bir kapsayıcı içinde komutlar çalıştırmanızı sağlar; genellikle hata ayıklama veya manuel kontroller için kullanılır.

Docker yalnızca Linux tabanlı sistemler için midir?

Hayır, Docker macOS ve Windows’u da destekler; kapsayıcılaştırmayı etkinleştirmek için hafif sanal makineler kullanır.

docker-compose down komutu ne yapar?

docker-compose up tarafından oluşturulan kapsayıcıları, ağları ve volumeları durdurur ve kaldırır.

Dangling (asılı) Docker imajlarını nasıl kaldırırım?

Kullanılmayan imajları temizlemek ve disk alanı boşaltmak için docker image prune çalıştırın.

Docker üretim ortamlarında kullanılabilir mi?

Kesinlikle. Docker, bulut ve şirket içi kurulumlar genelinde ölçeklenebilir, tekrarlanabilir uygulamaları dağıtmak için üretimde yaygın olarak kullanılır.

Laiba Siddiqui

Yazar

Laiba Siddiqui

Karmaşık konuları basitleştirmeyi seven bir içerik stratejistiyim. Splunk, Hackernoon ve Tiiny Host gibi şirketlerin hedef kitleleri için ilgi çekici ve bilgilendirici içerikler üretmelerine yardımcı oldum.

Konular

İlgili