Machine: الاقتراح: إضافة "exec-machine docker"

تم إنشاؤها على ٢٩ أبريل ٢٠١٥  ·  5تعليقات  ·  مصدر: docker/machine

هذه من شأنها تعيين متغيرات البيئة ثم تنفيذ الأمر. على سبيل المثال

docker-machine exec mymachine docker images
docker-machine exec mymachine ./my-docker-wrapper.sh

التعليق الأكثر فائدة

يبدو أن هذا هو بالفعل ما يفعله ssh ؟

docker-machine ssh mymachine -- ifconfig -a
docker-machine ssh mymachine -- docker info
docker-machine ssh mymachine -- "echo uname -a > test && chmod +x test && ./test"

هل يمكنك توضيح كيف سيكون ذلك مختلفًا؟

ال 5 كومينتر

يبدو أن هذا هو بالفعل ما يفعله ssh ؟

docker-machine ssh mymachine -- ifconfig -a
docker-machine ssh mymachine -- docker info
docker-machine ssh mymachine -- "echo uname -a > test && chmod +x test && ./test"

هل يمكنك توضيح كيف سيكون ذلك مختلفًا؟

لا أريد تشغيله على مضيف عامل الإرساء ، أريد تشغيله محليًا ، ولكن مع إعداد عامل الإرساء للتحدث إلى الجهاز البعيد. في الأساس نسخة أبسط من

bash -c "eval $(docker-machine env mymachine);
docker images
"

لست مغرمًا بتغيير بيئتي في غلافي الخارجي ، ما زلت أنسى أنني فعلت ذلك ، ثم فجأة يتصرف عامل الميناء بشكل مختلف وأنا في حيرة من أمري.

إنها مطولة قليلاً ، ولكن إذا كنت أرغب في تشغيل أوامر عامل الإرساء لمرة واحدة على الأجهزة ، فأنا عادةً ما أستخدم docker-machine config ، والتي ستنشر علامات docker الصحيحة للاتصال بجهاز معين:

$ docker $(docker-machine config name) info

يمكنك أيضًا كتابة اسم مستعار صغير للقذيفة مثل ذلك إذا كان هناك الكثير من الكتابة:

dkrm () {
    docker $(docker-machine config $1) "${@:2}"
}

سيوجه عميل Docker إلى الجهاز المحدد بواسطة الوسيطة الأولى ، ويمرر الباقي إلى عميل Docker.

الاستخدام مثل:

$ dkrm devbox ps
... some containers on the machine "devbox"
$ dkrm staging ps
...some containers on the machine "staging"

هل هذا يساعد؟

لم أكن على علم بهذا الأمر ، لذا شكرًا على ذلك. إنه يساعد ، لكنه ليس شفافًا مثل أمر exec. على سبيل المثال ، يصعب استخدامها مع عامل إنشاء السفن أو التين أو أي نوع من البرامج النصية المجمعة. لدي ملف يقوم ببناء Dockerfile من عدة ملفات في الدير الحالي ويغذيه عبر docker build - .

يمكنني عمل شيء مثل DOCKER="docker $(docker-machine config mymachine)" ./build.sh ثم الحصول على : ${DOCKER:=docker} في البرنامج النصي. لذلك فهو عملي. لست متأكدا من عامل عامل البناء بالرغم من ذلك.

هيه ، نعم ، إذا كنت تريد استخدام docker-compose فمن الأفضل لك تحديد متغيرات البيئة المناسبة.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات