Docker Compose: Không có hình ảnh như vậy


122

Khi tôi chạy docker-compose up, tôi gặp lỗi này:

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"

Câu trả lời:


243

Bộ nhớ cache cũ đã gây ra sự cố này, tôi không thể chạy lệnh này lần đầu tiên và do docker-soạn ảnh đã tạo mà tôi không thể nhìn thấy từ đó docker images.

Cần kiểm tra từ docker-compose psvà xóa tất cả các hình ảnh cũ bằng lệnh này docker-compose rm, sau đó xây dựng lại.


2
Hãy xem câu trả lời của Shiva. Tự hỏi tại sao phải mất gần một năm để cải thiện điều này? Cố lên, VẬY!
Adam

2
stackoverflow.com/a/43381147/8283848 điều này sẽ làm điều kỳ diệu một cách hoàn hảo (đối với tôi)
JPG

có thể tốt khi đề cập rằng docker-compile rm không có id tham số sau của hình ảnh, không giống như trường hợp với docker rmi #id. Nếu không, tôi không thể xóa tên hiện có của hình ảnh do docker rmi 2d0c8d6058f4_myprojectcom_app_1
docker

125

Tôi gặp lỗi này khi sử dụng Docker Machine trên Windows.

Một thùng chứa dường như đã bị lừa; docker-compose rm --allkhiến toàn bộ vỏ bị đóng băng và khởi động lại Máy Docker cũng không giúp được gì, vùng chứa vẫn hiển thị khi thực hiện docker-compose ps.

Giải pháp là thực hiện docker-compose down.


Cách tốt hơn là loại bỏ chỉ thất bại với hình ảnh docker-compose rm webb webc webavà sau đó kéo hoặc xây dựng mới
OzzyCzech

1
@OzzyCzech Tôi chắc chắn rằng điều đó hữu ích trong tình huống của bạn. Nhưng trong tôi docker-compose rmđóng băng vỏ của tôi.
Matthias Braun

Tôi không gặp sự cố đóng băng nhưng docker-compose rm --allkhông xóa tất cả hình ảnh. docker-compile down đã khắc phục sự cố. (Ubuntu 16)
Raheel

Cảm ơn bạn @MatthiasBraun. Nó hoạt động với tôi trên ubuntu 17.10
Raj Kumar N

45

Để giải quyết vấn đề này

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

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

Để xem tất cả hình ảnh

docker images -a

1
Vấn đề là thiếu hình ảnh và như vậy updowncác lệnh không hoạt động. Câu trả lời đúng là sử dụng docker-compose rmđể xóa hình ảnh và build-> upmột lần nữa.
Bhargav Nanekalva

2
Bhargav Sir, Bạn cần nghiên cứu thêm trước khi từ chối một câu trả lời, đặc biệt nếu bạn không có đủ kinh nghiệm với công nghệ đó. Hoặc bạn có thể ít nhất xem các câu trả lời trước đó (của Matthias Braun) nói điều tương tự mà docker-soạn xuống sẽ giải quyết vấn đề. Nó cũng đã giải quyết vấn đề cho tôi cùng với những người khác (mac - 10.11.5) (docker - 17.03.1-ce).
Yogesh Yadav

Anh ấy đã đề cập đến việc sử dụng rmvà cũng trong một bình luận dưới câu trả lời của mình.
Bhargav Nanekalva

1
Anh ta đang nói rm đóng băng vỏ của anh ta và không giải quyết được vấn đề cho anh ta.
Yogesh Yadav

1
Điều này hoạt động tốt hơn docker-compose rm. Cảm ơn bạn!
varagrawal

19

Vấn đề đã được giải quyết cho tôi bằng cách làm

docker-compose ps

tìm tên vùng chứa có vấn đề và sau đó (lưu ý chạy dockerở đây)

docker rm <problematic container name>

2

Trên Ubuntu 18.04.4 và Docker phiên bản 19.03.6

Tôi đã thử câu trả lời của Yogesh Yadav, nhưng

$ docker-compile -f docker-compile-filename.yml up

lệnh đóng băng thiết bị đầu cuối của tôi khi chạy 'khóa hiện tại'.

Tôi đã có thể giải quyết nó bằng cách liệt kê các vùng chứa:

$ docker-compose ps

Và loại bỏ từng vùng chứa có vấn đề, chạy:

$ docker rm <name_of_the_problematic_container>

0

Ví dụ sử dụng weba, webb và webc như " Cách sử dụng Docker Compose để chạy các ứng dụng nhiều vùng chứa phức tạp trên Raspberry Pi của bạn ", giả sử rằng bạn đang xây dựng những hình ảnh đó.

weba:
  build: .
  expose:
    - 80

Có nghĩa là bạn có (trong /home/benson/Docker/HaproxyMy) một cái Dockerfile như thế này, cái này sẽ được giải thích bởi bản dựng. để xây dựng những hình ảnh đó.


Cảm ơn, tôi đã tìm thấy trường hợp gốc, Bộ nhớ cache cũ gây ra sự cố này, Thx. Tôi sẽ viết các bước dưới đây.
Bensson
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.