শুধুমাত্র নির্দিষ্ট ধারকগুলির জন্য ডকার-রচনা করুন


161

আমার একটি রয়েছে docker-compose.ymlযার মধ্যে বেশ কয়েকটি পাত্রে রয়েছে। এর মধ্যে তিনটি আমার অ্যাপের জন্য (ক্লায়েন্ট, সার্ভার এবং ডাটাবেস) এবং বাকিগুলি বিভিন্ন দেব সরঞ্জামগুলির জন্য (যেমন পিএসকিএল, এনপিএম, ম্যানেজ.পি, ইত্যাদি)। যখন আমি docker-compose upতাদের সমস্তগুলি শুরু করি তবে আমি কেবল তিনটি প্রধানকে শুরু করতে চাই। আমি যে লিঙ্কগুলি নির্দিষ্ট করেছি তার কারণে আমি কেবলমাত্র এই তিনটি দিয়ে শুরু করতে পারি docker-compose up clientতবে তারপরে আউটপুটটি কেবলমাত্র একটি ধারক থেকে। সুতরাং, নিম্নলিখিতগুলির মধ্যে একটি করার উপায় আছে:

  1. কোন পাত্রে শুরু হওয়া উচিত তা ডকার-রচনাতে বলুন docker-compose up
  2. সমস্ত লিঙ্কযুক্ত পাত্রে থেকে আউটপুট পান docker-compose up client

1
দস্তাবেজ অনুসারে: docker-compose up [options] [SERVICE...]আপনি যে পরিষেবাগুলির সাবসেটটি তালিকাভুক্ত করবেন তা শুরু করতে দেয়।
জেসি চিশলম

উত্তর:


257

আপনি ব্যবহার করে পাত্রে শুরু করতে পারেন:

$ docker-compose up -d client

এটি পটভূমিতে পাত্রে চালিত হবে এবং এর থেকে আউটপুট উপলব্ধ

$ docker-compose logs

এবং এটি আপনার শুরু করা সমস্ত পাত্রে থাকবে


11
পারফেক্ট। লগগুলি
স্টডআউটে

যদি নির্ভরতা ধারকটি ইতিমধ্যে চালু থাকে এবং আমি এটি পুনরায় আরম্ভ করতে চাই না তবে কি নির্ভরশীল ধারকটি শুরু করা সম্ভব?
majTheHero

43

আপনার ডকার-রচনা ফাইলের মধ্যে সংজ্ঞায়িত একটি নির্দিষ্ট পরিষেবা শুরু করতে। উদাহরণস্বরূপ যদি আপনার ডকার-কম্পোজ.আইএমএল থাকে

sudo docker-compose start db  

একটি রচনা ফাইল যেমন দেওয়া হয়েছে:

version: '3.3'

services:
   db:
     image: mysql:5.7
     ports:
       - "3306:3306"
     volumes:
       - ./db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: yourPassword
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: yourPassword

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "80:80"
     volumes:
       - ./l3html:/var/www/html
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: yourPassword
volumes:
    db_data:
    l3html:

আপনার সম্পূর্ণ স্যুটটি শুরু করার আগে আপনি কেবলমাত্র MySQL শুরু করতে চান (কখনও কখনও আপনি কেবল একটি ডাটাবেস তৈরি করতে চান)।


9
কেন sudoআগে docker-compose ...? এটি প্রয়োজনীয় নয়, তাই না?
জোচেম শুলেনক্লাপ্পার

1
যদি আপনার ব্যবহারকারীকে ডকার গ্রুপে না করে তবে হ্যাঁ, এটি প্রয়োজনীয় হবে।
ডেলপো

আমি sudo docker-compose up db পরিবর্তে যদি ব্যবহার করি তবে কী পার্থক্য হবে sudo docker-compose start db
লুক আরন

3
@ লুকআরন - startধরে নিয়েছে যে ধারকটি ইতিমধ্যে উপস্থিত রয়েছে এবং কেবল এটি শুরু করে, upপ্রয়োজনে চিত্রগুলি টানবে , প্রয়োজনে পাত্রে তৈরি করবে, তারপরে ধারকটি শুরু করবে।
জেসি চিশল্ম


4

একটি ভাল সমাধান হ'ল কেবলমাত্র পছন্দসই পরিষেবাগুলি চালানো:

docker-compose up --build $(<services.txt)

এবং Services.txt ফাইলটি দেখতে দেখতে:

services1 services2, etc

অবশ্যই যদি নির্ভরতা (depend_on) হয় তবে এক সাথে সম্পর্কিত পরিষেবাদি চালানো দরকার।

- বিল্ড optionচ্ছিক, যেমন উদাহরণস্বরূপ।


0

docker-composeV1.5 যেহেতু পতাকা সহ একাধিক docker-compose.ymlফাইল পাস-f করা সম্ভব । এটি আপনাকে আপনার ডিভাইস সরঞ্জামগুলিকে আলাদা করে বিভক্ত করতে দেয় docker-compose.ymlযা আপনি কেবল অন-ডিমান্ডে অন্তর্ভুক্ত করেন:

# start and attach to all your essential services
docker-compose up

# execute a defined command in docker-compose.dev.yml
docker-compose -f docker-compose.dev.yml run npm update

# if your command depends_on a service you need to include both configs
docker-compose -f docker-compose.yml -f docker-compose.dev.yml run npm update

এটিতে গভীরতর আলোচনার জন্য ডকার / রচনা # 1896 দেখুন

এটি আরও বেশি সুবিধার্থে এটি অর্জনের জন্য একটি কার্যকারিতা যুক্ত করার জন্য আমি একটি টান অনুরোধ তৈরি করেছি ( ডকার / রচনা # 7548 ) তবে যেহেতু এটি রচনা ফাইলের ক্ষেত্রে পরিবর্তন প্রয়োজন, এখন এটি রচনা-অনুমান / রচনা-স্পেসে আলোচনা করা হয়েছে # 87


-1

আপনি সাধারণত এটি করতে চান না। ডকার রচনা দিয়ে আপনি পরিষেবাগুলি সংজ্ঞায়িত করেন যা আপনার অ্যাপটি রচনা করেnpmএবং manage.pyকেবল পরিচালনার আদেশ রয়েছে। তাদের জন্য আপনার কোনও ধারক লাগবে না। আপনার যদি প্রয়োজন হয় তবে আপনার ডেটাবেস টেবিলগুলি তৈরি করে বলুন manage.py, আপনাকে যা করতে হবে তা হ'ল:

docker-compose run client python manage.py create_db

এটিকে হিরোকু যে এক-অফ ডায়নো ব্যবহার করে তা ভাবুন।

আপনার যদি সত্যিই এই পরিচালনা কমান্ডগুলিকে পৃথক ধারক হিসাবে বিবেচনা করার প্রয়োজন হয় (এবং এর জন্য ডকার রচনাও ব্যবহার করেন), আপনি একটি পৃথক .ymlফাইল তৈরি করতে পারেন এবং নিম্নলিখিত কমান্ডের সাহায্যে ডকার রচনাটি শুরু করতে পারেন :

docker-compose up -f my_custom_docker_compose.yml

15
প্রচুর লোক এটি করতে চায়।
কোজিরো

8
@ এমএসআরড0 আপনি সাধারণত এটি করতে চান না? মানুষ নিজের জন্য সিদ্ধান্ত নিতে দিন!
ক্রিস

1
এসও-তে একটি নিয়ম থাকা উচিত যে কেন তা ব্যাখ্যা না করে আপনি হ্রাস করতে পারবেন না। কারণ এটি (বা কমপক্ষে প্রথম অংশ) সর্বাধিক বোধগম্য, প্রতিটি সম্ভাব্য ম্যানেজমেন্ট কমান্ডের জন্য অতিরিক্ত ধারক থাকা অত্যন্ত বিচিত্র।
thclark
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.