Làm thế nào để dừng và loại bỏ một container docker?


11

Tôi đang cố gắng loại bỏ một docker / hình ảnh / container và tất cả những thứ được kết nối bằng docker, nhưng trước hết tôi cần phải dừng nó. Trong khi tôi đang cố gắng thực hiện lệnh này:

docker stop $(docker ps -a -q)

Nó cho tôi một lỗi:

[:/home/imran] 1 $ docker stop $(docker ps -a -q)

2015/01/16 00:37:38 Get http:///var/run/docker.sock/v1.14/containers/json?all=1: dial unix /var/run/docker.sock: permission denied

Usage: docker stop [OPTIONS] CONTAINER [CONTAINER...]  

Stop a running container by sending SIGTERM and then SIGKILL after a grace period

  -t, --time=10      Number of seconds to wait for the container to stop before killing it. Default is 10 seconds.

Làm thế nào tôi có thể gỡ cài đặt một container docker?

Câu trả lời:


12

Tôi đã sửa nó! Xin đừng quên - tất cả dữ liệu của bạn trong các thùng chứa sẽ bị xóa!

Vì vậy, trước hết chúng ta cần thực hiện các lệnh này:

# adding new group
$ sudo groupadd docker

# adding user to the 'docker' group
$ sudo gpasswd -a ${your_username} docker

# restart the docker (documentation suggests to use 'docker.io' instead of 'docker',
# for me both variants work just fine!
$ sudo service docker restart

Sau đó, chúng tôi cần đăng xuất, KHÔNG sử dụng biến thể GUI vì nó không hoạt động với tôi và tôi đã thất vọng về điều này.

Thay vào đó, sử dụng lệnh này:

sudo pkill -u username

Vậy thì chúng ta cần ...

1. Giết tất cả các container đang chạy

sudo docker kill $(docker ps -q)

2. Xóa tất cả các container đã dừng

sudo docker rm $(docker ps -a -q)

3. Xóa tất cả hình ảnh 'không được gắn thẻ / treo lủng lẳng'

sudo docker rmi $(docker images -q -f dangling=true)

4. Xóa tất cả hình ảnh

sudo docker rmi $(docker images -q)

Nguồn:
https://www.calazan.com/docker-cleanup-commands/
http://www.linuxquestions.org/questions/ubfox-63/how-do-i-log-out-via-terminal-928183/

PS Có thể các câu trả lời khác cũng đúng, nhưng tại thời điểm những câu trả lời này được công bố, vấn đề của tôi đã được khắc phục và tôi không thể kiểm tra xem chúng có đúng hay không. Cảm ơn @Andreas. Ông chỉ ra một sai lầm rằng container đã được gỡ bỏ. Vì tôi không tìm thấy bất kỳ câu trả lời đúng và "tất cả trong một" nào, tôi muốn cho bạn biết làm thế nào bạn có thể sửa nó.


Làm thế nào để bạn loại bỏ định tuyến IP còn lại từ ifconfig? dockervẫn hiển thị dưới dạng thiết bị mạng
6ft Dan

3

Bạn cần phải thực thi các lệnh này root, tức là sử dụng sudo:

sudo docker stop $(sudo docker ps -a -q)

Hoặc là:

sudo sh -c "docker stop $(docker ps -a -q)"

Đây có phải là một đầu ra bình thường: pastebin.com/FXhc5TF7 . Ngoài ra tôi đã nhận thấy "nhãn cmd" của tôi đã thay đổi. Từ 'user @ rootf8fds7 $:' đến '[: / home /
imran

Có lẽ điều này có nghĩa là không có container đang chạy. Kiểm tra bằng cách chạy đơn giản sudo docker ps.
Andreas Veithen 16/1/2015

Vâng, bạn đã đúng, tôi đã thử một phương pháp khác trước khi bạn viết câu trả lời của mình và điều này bởi vì chúng không tồn tại xD. Còn vấn đề với "cmd-nhãn" thì sao? Điều này là do docker . Tôi có nên mở chủ đề mới? Tôi nghĩ sẽ rất phức tạp khi hiểu người khác những gì đang diễn ra mà họ sẽ không thấy cuộc trò chuyện này. Bạn có biết làm cách nào để sửa nó không?
Pushandpop

Đây thực sự có lẽ là một vấn đề riêng biệt.
Andreas Veithen
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.