2017-03-13 21 views
8

tôi lần đầu tiên bị ảnh nginx Docker tôi:Docker restart đựng thất bại: "đã được sử dụng", nhưng không có hình ảnh Docker hơn

docker pull nginx 

Sau đó, tôi bắt đầu nó:

docker run -d -p 80:80 --name webserver nginx 

Sau đó, tôi dừng lại nó:

docker stop webserver 

Sau đó, tôi đã cố gắng để khởi động lại nó:

$docker run -d -p 80:80 --name webserver nginx 
docker: Error response from daemon: Conflict. The container name "/webserver" is already in use by container 036a0bcd196c5b23431dcd9876cac62082063bf62a492145dd8a55141f4dfd74. You have to remove (or rename) that container to be able to reuse that name.. 
See 'docker run --help'. 

Vâng, đó là lỗi. Nhưng trên thực tế, không có gì trong danh sách vùng chứa ngay bây giờ:

docker container list 
CONTAINER ID  IMAGE    COMMAND    CREATED    STATUS    PORTS    NAMES 

Tại sao tôi khởi động lại hình ảnh nginx không thành công? Làm thế nào để sửa chữa nó?

Trả lời

25

Đó là vì

  • bạn đã sử dụng --name switch.
  • container được dừng lại và không được loại bỏ

Bạn thấy nó dừng lại

docker ps -a 

Bạn chỉ có thể bắt đầu nó bằng cách sử dưới lệnh:

docker start webserver 

EDIT: Alternatives Nếu bạn muốn bắt đầu vùng chứa với lệnh dưới đây mỗi lần,

docker run -d -p 80:80 --name webserver nginx 

sau đó sử dụng một trong các cách sau:

phương pháp 1: sử dụng --rm switch tức, container bị phá hủy tự động ngay sau khi nó được dừng

docker run -d -p 80:80 --rm --name webserver nginx 

phương pháp 2: loại bỏ nó một cách rõ ràng sau khi dừng container trước khi bắt đầu lệnh mà bạn đang sử dụng.

docker stop <container name> 
docker rm <container name> 
1

Khi lỗi nói.

Bạn cần phải loại bỏ (hoặc đổi tên) chứa rằng để có thể tái sử dụng mà tên

này để lại cho bạn hai lựa chọn.

  • Bạn có thể xóa container đó là sử dụng cái tên "webserver" bằng cách sử dụng lệnh

    Docker rm 036a0bcd196c5b23431dcd9876cac62082063bf62a492145dd8a55141f4dfd74

và thử lại.

  • Hoặc bạn có thể sử dụng tên khác trong khi chạy lệnh. Điều này không được khuyến khích, vì bạn không còn cần docker nữa.

Tốt hơn hết là nên tháo đế cắm không mong muốn và sử dụng lại tên.

Các vấn đề liên quan