Docker Compose: ไม่มีภาพดังกล่าว


122

เมื่อฉันเรียกใช้docker-compose upฉันได้รับข้อผิดพลาดนี้:

root@ubuntu:/home/benson/Docker/HaproxyMy# docker-compose up
Recreating 950ddc308278_950ddc308278_950ddc308278_950ddc308278_950ddc308278_haproxymy_webb_1
Recreating 485800bdf3a1_485800bdf3a1_485800bdf3a1_485800bdf3a1_485800bdf3a1_haproxymy_webc_1
Recreating 2b3338d88716_2b3338d88716_2b3338d88716_2b3338d88716_2b3338d88716_haproxymy_weba_1

ERROR: for webb  No such image: sha256:15853e771e7ca3f5eecee38fcf97efd3ee164c1b66e2ef543d9985a04e78e099

ERROR: for webc  No such image: sha256:15853e771e7ca3f5eecee38fcf97efd3ee164c1b66e2ef543d9985a04e78e099

ERROR: for weba  No such image: sha256:15853e771e7ca3f5eecee38fcf97efd3ee164c1b66e2ef543d9985a04e78e099

docker-compose.yml:

weba:
    build: ./web
    expose:
        - 80

webb:
    build: ./web
    expose:
        - 80

webc:
    build: ./web
    expose:
        - 80


haproxy:

    image: haproxy:latest

    volumes:

        - ./haproxy:/haproxy-override
        - ./haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro
    links:

        - weba
        - webb
        - webc
    ports:

        - "80:80"
        - "70:70"
    expose:

        - "80"
        - "70"

คำตอบ:


243

docker imagesแคชเก่าที่เกิดปัญหานี้ผมล้มเหลวในการใช้คำสั่งนี้เป็นครั้งแรกและนักเทียบท่า-เขียนภาพที่สร้างขึ้นแล้วที่ฉันไม่สามารถดูได้จาก

ต้องตรวจสอบdocker-compose psและลบภาพเก่าทั้งหมดด้วยคำสั่งนี้docker-compose rmแล้วสร้างใหม่อีกครั้ง


2
ดูคำตอบของพระอิศวรด้วย สงสัยว่าทำไมถึงใช้เวลาเกือบปีในการปรับปรุงเรื่องนี้? มาเลย!
Adam

2
stackoverflow.com/a/43381147/8283848สิ่งนี้จะทำให้เวทมนตร์สมบูรณ์แบบ (สำหรับฉัน)
JPG

อาจเป็นการดีที่จะพูดถึงว่า rm ที่เขียนเทียบท่าเทียบเคียงนั้นไม่มี id พารามิเตอร์ต่อไปนี้ของรูปภาพซึ่งแตกต่างจากกรณีที่มี docker rmi #id มิฉะนั้นฉันจะไม่สามารถลบชื่อที่มีอยู่ของภาพที่มีนักเทียบท่าซึ่งถูกออกและลบผ่านdocker rmi 2d0c8d6058f4_myprojectcom_app_1
FantomX1

126

ฉันพบข้อผิดพลาดนี้เมื่อใช้Docker Machineบน Windows

ดูเหมือนตู้คอนเทนเนอร์จะโกงไปแล้ว เกิดจากเปลือกทั้งการแช่แข็งและรีสตาร์ทเครื่องเทียบท่าไม่ได้ช่วยทั้งภาชนะยังคงปรากฏตัวขึ้นเมื่อทำdocker-compose rm --alldocker-compose ps

docker-compose downวิธีแก้คือการดำเนินการ


วิธีที่ดีกว่าคือลบเฉพาะภาพที่ล้มเหลวdocker-compose rm webb webc webaแล้วดึงหรือสร้างใหม่
OzzyCzech

1
@OzzyCzech ฉันแน่ใจว่ามีประโยชน์ในสถานการณ์ของคุณ แต่ในของdocker-compose rmฉันทำให้เปลือกของฉันแข็ง
Matthias Braun

ฉันไม่มีปัญหาการค้าง แต่docker-compose rm --allไม่ได้ลบภาพทั้งหมดออก นักเทียบท่าเขียนลงแก้ไขปัญหา (Ubuntu 16)
Raheel

ขอบคุณ @MatthiasBraun. มันใช้งานได้สำหรับฉันบน Ubuntu 17.10
Raj Kumar N

45

เพื่อแก้ปัญหานี้

docker-compose -f docker-compose-filename.yml down

docker-compose -f docker-compose-filename.yml up

เพื่อดูภาพทั้งหมด

docker images -a

1
ปัญหาคือรูปภาพที่หายไปและด้วยเหตุนี้upและdownคำสั่งจึงไม่ทำงาน คำตอบที่ถูกต้องคือใช้docker-compose rmเพื่อล้างภาพและbuild-> upอีกครั้ง
Bhargav Nanekalva

2
Bhargav Sir คุณต้องทำการวิจัยเพิ่มเติมก่อนที่จะลงคะแนนคำตอบเป็นพิเศษหากคุณไม่มีประสบการณ์เพียงพอกับเทคโนโลยีนั้น หรืออย่างน้อยคุณสามารถดูคำตอบก่อนหน้านี้ (โดย Matthias Braun) ซึ่งพูดในสิ่งเดียวกันกับที่นักเทียบท่าเขียนลงจะช่วยแก้ปัญหาได้ มันได้แก้ไขปัญหาให้ฉันพร้อมกับคนอื่น ๆ ด้วย (mac - 10.11.5) (นักเทียบท่า - 17.03.1-ce)
Yogesh Yadav

เขาพูดถึงการใช้rmและในความคิดเห็นใต้คำตอบของเขา
Bhargav Nanekalva

1
เขาไม่ว่าจะเป็นRM แข็งเปลือกของเขาและไม่ได้แก้ปัญหาสำหรับเขา
Yogesh Yadav

1
docker-compose rmนี้ทำงานได้ดีกว่า ขอบคุณ!
varagrawal

19

ปัญหาได้รับการแก้ไขสำหรับฉันโดยการทำ

docker-compose ps

ค้นหาชื่อคอนเทนเนอร์ที่มีปัญหาจากนั้น (หมายเหตุกำลังทำงานdockerที่นี่)

docker rm <problematic container name>

2

บน Ubuntu 18.04.4 และ Docker เวอร์ชัน 19.03.6

ฉันลองใช้คำตอบของ Yogesh Yadav แต่

$ docker-compose -f docker-compose-filename.yml ขึ้น

คำสั่งตรึงเทอร์มินัลของฉันเมื่อเรียกใช้ 'ล็อกปัจจุบัน'

ฉันสามารถแก้ไขได้โดยแสดงรายการคอนเทนเนอร์:

$ docker-compose ps

และนำคอนเทนเนอร์ที่มีปัญหาออกทีละรายการโดยรัน:

$ docker rm <name_of_the_problematic_container>

0

ตัวอย่างการใช้ weba, webb และ webc เช่น " How to use Docker Compose เพื่อรันแอพ multi container ที่ซับซ้อนบน Raspberry Pi ของคุณ " สมมติว่าคุณกำลังสร้างภาพเหล่านั้น

weba:
  build: .
  expose:
    - 80

ความหมายคุณมี (ใน/home/benson/Docker/HaproxyMy) แบบDockerfile นี้ซึ่งจะถูกตีความโดยการสร้าง เพื่อสร้างภาพเหล่านั้น


ขอบคุณฉันพบกรณีรากแคชเก่าทำให้เกิดปัญหานี้ Thx ฉันจะเขียนขั้นตอนด้านล่างนี้
Bensson
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.