Docker ve docker-compose arasındaki fark nedir


237

dockerve docker-composeaynı dockerFile ile etkileşime giriyor gibi görünüyor, iki araç arasındaki fark nedir?

Yanıtlar:


270

dockerBir liman işçisi motoru üzerinde tek tek kapların yönetirken cli kullanılır. Docker daemon api'ye erişmek istemci komut satırıdır.

docker-composeCli çoklu kap uygulama yönetmek için kullanılabilir. Ayrıca , daha kolay yeniden kullanım için docker runcli'ye gireceğiniz seçeneklerin çoğunu docker-compose.ymldosyaya taşır . Tarafından kullanılan aynı docker api üstünde bir ön uç "komut dosyası" olarak çalışır docker, böylece komutlar ve kabuk komut dosyası bir sürü docker-composeile her şeyi yapabilirsiniz docker. Daha fazla bilgi için docker-compose ile ilgili bu belgelere bakın.


Sürü Modu Güncellemesi

Bu yanıt gönderildiğinden, docker ikinci bir docker-compose.yml dosyası kullanımını ekledi. İle başlayarak versiyon 3 yml biçimi ve docker 1.13 dockers sürüsü modunda bir yığın tanımlamak da docker oluþturunuz ile yml kullanabilirsiniz. İkincisini yapmak için yığını docker stack deploy -c docker-compose.yml $stack_nameyerine kullanmanız docker-compose upve ardından dockerkomut yerine komutlarla yönetmeniz gerekir docker-compose. Eşleme iki kullanım arasında bire birdir:

  • Proje Oluştur -> Sürü Yığını: Belirli bir amaç için bir grup hizmet
  • Oluşturma Hizmeti -> Sürü Hizmeti: Bir resim ve yapılandırması, muhtemelen ölçeklendirilmiş.
  • Oluşturma Kabı -> Sürü Görevi: Bir hizmetteki tek bir kapsayıcı

Sürü modu hakkında daha fazla bilgi için, liman işçisinin sürü modu belgelerine bakın .


76

docker tek kapları yönetir

docker-compose birden çok kapsayıcı uygulamasını yönetir

Docker-compose kullanımı 3 adım gerektirir:

  1. Dockerfile ile uygulama ortamını tanımlama
  2. Docker-compose.yml içindeki uygulama hizmetlerini tanımlayın
  3. Run docker-compose upbaşlatmak ve çalıştırmak uygulaması için

liman işçisi

Aşağıda, docker dokümanlarından alınan bir docker-compose.yml örneği verilmiştir :

services:
  web:
    build: .
    ports:
    - "5000:5000"
    volumes:
    - .:/code
    - logvolume01:/var/log
    links:
    - redis
  redis:
    image: redis
volumes:
  logvolume01: {}

3
Anlaşılır build: .olması için, webbölümdeki satır 1. adımda oluşturulan Dockerfile'ın konumunu gösterir.
AndrewGentry
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.