CREATED STATUS PORTS NAMES55e1fd18acf1 simpleappnodedocker_web "node app.js" 6 seconds ago Up 6 seconds 0.0.0.0:9000->3000/tcp myapp9879ff20e241 postgres:9.6 "docker-entrypoint..." 36 hours ago Up 36 hours 0.0.0.0:5432->5432/tcp nd-db
أحاول تشغيل باش للدخول إلى قذيفة ، ولكن أحصل على خطأ ، وكيفية حل هذا ، وأنا أفكر أنا أفعل شيئا خاطئا.
$docker-compose run myapp /bin/bash ERROR: No such service: myapp
استخدام docker-compose لبدء الحاوية وتشغيل أمر في الحاوية قيد التشغيل:
docker-compose updocker-compose exec web /bin/bash
docker-compose يستخدم اسم الخدمة - في حالتك هذا هو web - بينما docker يستخدم اسم الحاوية-في هذه الحالة myapp.
لذلك لتشغيل /bin/bash من خلال docker، يمكنك استخدام ما يلي:
docker exec -ti myapp /bin/bash
هل يمكن إزالة container_name من عند docker-compose.yaml، ثم سيتم تسمية الحاوية تلقائيا بواسطة docker-compose - على غرار الخدمة ، ولكن مسبوقة مع اسم docker-compose كومة (اسم المجلد حيث docker-compose.yaml يقع).
الجواب الآخر هو الصحيح ولكن بطريقة ما كان مربكا بعض الشيء في تفسيره الواسع على &مثل;علاقة عامل الميناء وعامل الميناء يؤلف&مثل;.
الشيء الرئيسي للتخلص من الخطأ في السؤال هو أن تفعل ما يقوله الخطأ: & مثل; خطأ: لا توجد مثل هذه الخدمة: & مثل;, وبالتالي, أنت يجب اختر خدمة موجودة في ملف الإنشاء الخاص بك ، و لا اسم الحاوية. في المثال ، هو web، وليس myapp.