Moby: Tidak dapat menghapus jaringan "memiliki titik akhir aktif"

Dibuat pada 20 Okt 2015  ·  59Komentar  ·  Sumber: moby/moby

Tidak yakin apakah ini termasuk dalam repo atau libnetwork ini.

versi buruh pelabuhan: Docker version 1.9.0-rc1, build 9291a0e
info buruh pelabuhan:

Containers: 0
Images: 5
Engine Version: 1.9.0-rc1
Storage Driver: devicemapper
 Pool Name: docker-253:0-390879-pool
 Pool Blocksize: 65.54 kB
 Base Device Size: 107.4 GB
 Backing Filesystem: xfs
 Data file: /dev/loop0
 Metadata file: /dev/loop1
 Data Space Used: 2.023 GB
 Data Space Total: 107.4 GB
 Data Space Available: 11.62 GB
 Metadata Space Used: 1.7 MB
 Metadata Space Total: 2.147 GB
 Metadata Space Available: 2.146 GB
 Udev Sync Supported: true
 Deferred Removal Enabled: false
 Deferred Deletion Enabled: false
 Deferred Deleted Device Count: 0
 Data loop file: /var/lib/docker/devicemapper/devicemapper/data
 Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
 Library Version: 1.02.93-RHEL7 (2015-01-28)
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 3.10.0-229.14.1.el7.x86_64
Operating System: CentOS Linux 7 (Core)
CPUs: 2
Total Memory: 1.797 GiB
Name: carbon1.rmb938.com
ID: IAQS:6E74:7NGG:5JOG:JXFM:26VD:IAQV:FZNU:E23J:QUAA:NI4O:DI3S

uname -a: Linux carbon1.rmb938.com 3.10.0-229.14.1.el7.x86_64 #1 SMP Tue Sep 15 15:05:51 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

Buat daftar langkah-langkah untuk mereproduksi masalah:

  1. Buat jaringan dengan driver jarak jauh
  2. Jalankan wadah yang terhubung ke jaringan
  3. Bunuh dan Keluarkan wadahnya
  4. Hapus jaringan

Jelaskan hasil yang Anda terima:

Jika driver jaringan jarak jauh memberikan kesalahan saat memproses /NetworkDriver.Leave docker masih mematikan dan menghapus wadah tetapi tidak menghapus titik akhir. Ini memungkinkan db internal buruh pelabuhan untuk berpikir bahwa titik akhir masih ada meskipun wadahnya dihapus.

Saat Anda mencoba dan menghapus jaringan, kesalahan ini dikembalikan

docker network rm net1      
Error response from daemon: network net1 has active endpoints

Jelaskan hasil yang Anda harapkan:

Docker seharusnya tidak diizinkan untuk mematikan atau menghapus wadah jika /NetworkDriver.Leave mengembalikan kesalahan.

arenetworking

Komentar yang paling membantu

@keithbentrup Ini adalah kasus titik akhir basi. Apakah Anda memiliki log kesalahan ketika wadah yang awalnya dihapus (yang meninggalkan titik akhir dalam keadaan ini).
BTW, jika wadah dilepas, tetapi titik akhir masih terlihat, maka seseorang dapat memaksa memutuskan titik akhir menggunakan docker network disconnect -f {network} {endpoint-name} . Anda bisa mendapatkan nama titik akhir dari perintah docker network inspect {network} .

Semua 59 komentar

Masalah ini tampaknya sangat terputus-putus dan tidak sering terjadi.

@rmb938 kami memiliki beberapa masalah dengan titik akhir yang menggantung dan telah diatasi melalui #17191. RC2 harus memiliki perbaikan untuk itu (atau master terbaru). Untuk penguji RC1 (terima kasih banyak), kami mungkin memerlukan solusi tambahan untuk membersihkan status sebelum memulai RC2. kami akan memperbarui dengan dokumen yang tepat.

Luar biasa. Terima kasih.

@mavenugo Saya baru saja mengulangi ini di 1.10.0:

sepertinya #17191 bukan perbaikan total...

Apakah Anda memiliki pekerjaan di sekitar? Bahkan memantulkan daemon buruh pelabuhan sepertinya tidak menyelesaikan masalah.

(dan beri tahu saya jika saya bisa memberi Anda lebih banyak info debug, itu masih repro'ing di mesin saya)

Saya juga baru saja mereproduksi ini di 1.10.3 dan mendarat di sini melalui google mencari solusi. Saya tidak dapat memaksa memutuskan titik akhir aktif b/c tidak ada wadah yang terdaftar melalui docker network inspect masih ada.

Saya akhirnya harus membuat ulang wadah konsul saya dan memulai kembali daemon buruh pelabuhan.

ping @mavenugo apakah Anda ingin masalah ini dibuka kembali, atau lebih suka masalah baru jika memiliki akar penyebab yang berbeda?

Klarifikasi, buruh pelabuhan 1.10.1

Client:
 Version:      1.10.1
 API version:  1.22
 Go version:   go1.4.3
 Git commit:   9e83765
 Built:        Fri Feb 12 12:41:05 2016
 OS/Arch:      linux/arm

Server:
 Version:      1.10.1
 API version:  1.22
 Go version:   go1.4.3
 Git commit:   9e83765
 Built:        Fri Feb 12 12:41:05 2016
 OS/Arch:      linux/arm

Biarkan saya membuka kembali ini untuk penyelidikan

Madhu, menugaskan Anda, tetapi jangan ragu untuk menugaskan kembali, tunjukkan solusi terkait jika sudah ada :smile:

@keithbentrup @brendandburns terima kasih telah mengangkat masalah ini. Beberapa pertanyaan

  1. Apakah Anda menggunakan driver jaringan multi-host (seperti driver Overlay). Bisakah Anda membagikan output docker network ls .
  2. Jika Anda tidak menggunakan driver multi-host, dapatkah Anda membagikan file /var/lib/docker/network/files/local-kv.db (melalui beberapa situs web file-sharing) dan network mana yang ingin Anda hapus? Dan bagaimana jaringan awalnya dibuat?

FYI. untuk driver jaringan multi-host, buruh pelabuhan mempertahankan titik akhir untuk jaringan di seluruh cluster di KV-Store. Oleh karena itu, jika ada host di cluster itu yang masih memiliki titik akhir yang hidup di jaringan itu, kita akan melihat kesalahan ini dan ini adalah kondisi yang diharapkan.

@thaJeztah PTAL komentar saya di atas dan berdasarkan skenario, ini tidak perlu menjadi bug. tidak apa-apa untuk menjaga masalah ini tetap terbuka jika itu membantu.

@mavenugo Ya, saya menggunakan driver overlay melalui docker-compose dengan swarm Host yang mengelola 2 node.

Ketika saya docker network inspect jaringan pada setiap simpul individu, 1 simpul memiliki 1 wadah terdaftar yang tidak ada lagi sehingga tidak dapat dihapus oleh docker rm -fv menggunakan nama wadah atau id.

@keithbentrup Ini adalah kasus titik akhir basi. Apakah Anda memiliki log kesalahan ketika wadah yang awalnya dihapus (yang meninggalkan titik akhir dalam keadaan ini).
BTW, jika wadah dilepas, tetapi titik akhir masih terlihat, maka seseorang dapat memaksa memutuskan titik akhir menggunakan docker network disconnect -f {network} {endpoint-name} . Anda bisa mendapatkan nama titik akhir dari perintah docker network inspect {network} .

@brendandburns dapatkah Anda membantu membalas https://github.com/docker/docker/issues/17217#issuecomment -195739573 ?

@mavenugo maaf atas keterlambatannya. Saya tidak menggunakan jaringan multi-Host buruh pelabuhan afaik. Ini adalah satu simpul raspberry pi dan saya belum melakukan apa pun selain menginstal buruh pelabuhan melalui hypriot.

Inilah output yang Anda minta ( network adalah jaringan yang tidak dapat saya hapus)

$ docker network ls
NETWORK ID          NAME                DRIVER
d22a34456cb9        bridge              bridge              
ef922c6e861e        network             bridge              
c2859ad8bda4        none                null                
150ed62cfc44        host                host 

File kv terlampir, saya harus menamainya .txt untuk menyiasati filter github, tetapi ini adalah file biner.

lokal-kv.db.txt

Saya membuat jaringan melalui panggilan API langsung (dockerode)

Ini telah berhasil (membuat dan menghapus) berkali-kali, saya pikir dalam hal ini, saya docker rm -f <container-id> tetapi saya tidak yakin, saya mungkin telah menghidupkan mesin ...

Semoga membantu.
--brendan

@mavenugo Jika docker network disconnect -f {network} {endpoint-name} maksud Anda docker network disconnect [OPTIONS] NETWORK CONTAINER per docker network disconnect --help , saya mencobanya, tetapi mengeluh (tidak mengherankan) dengan No such container .

Jika yang Anda maksud adalah EndpointID alih-alih nama/id wadah, saya tidak mencobanya (tetapi akan melakukannya lain kali) karena bukan itu yang disarankan --help .

@keithbentrup maksud saya opsi -f yang tersedia di v1.10.x. Opsi paksa juga mempertimbangkan nama titik akhir dari node lain di cluster juga. Oleh karena itu, instruksi saya sebelumnya akan bekerja dengan baik dengan opsi -f jika Anda menggunakan docker v1.10.x.

@brendandburns terima kasih atas infonya dan cukup berguna untuk mempersempit masalah. Ada referensi basi ke titik akhir yang menyebabkan masalah ini. Referensi basi kemungkinan besar disebabkan oleh siklus daya saat titik akhir sedang dibersihkan. kami akan menyelesaikan masalah inkonsistensi ini di 1.11.

@mavenugo senang itu membantu. Sementara itu, jika saya menghapus file itu, apakah semuanya akan tetap berfungsi?

Terima kasih
--brendan

@brendandburns ya. silakan. itu hanya akan bekerja dengan baik untuk Anda.

@mavenugo saya pikir Anda salah paham. Saya menggunakan opsi -f (terverifikasi dalam riwayat shell saya) pada v1.10.x tetapi dengan id wadah (bukan id titik akhir) b/c itulah yang disarankan bantuan (wadah bukan titik akhir). Jika itu dimaksudkan untuk bekerja dengan id wadah atau id titik akhir, maka itu adalah bug b/c itu pasti tidak terputus dengan id wadah dan opsi -f ketika wadah tidak ada lagi.

Saya dapat membuat ulang kondisi ketika mencoba menghapus docker_gwbridge yang mungkin mengurangi kebingungan.
Ketika saya menggunakan klien buruh pelabuhan yang menunjuk ke swarm manager, saya mengalami output ini:

~/D/e/m/compose (develop) $ docker network inspect docker_gwbridge
[
    {
        "Name": "docker_gwbridge",
        "Id": "83dfeb756951d3d175e9058d0165b6a4997713c3e19b6a44a7210a09cd687d54",
        "Scope": "local",
        "Driver": "bridge",
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.18.0.0/16",
                    "Gateway": "172.18.0.1/16"
                }
            ]
        },
        "Containers": {
            "41ebd4fc365ae07543fd8454263d7c049d8e73036cddb22379ca1ce08a65402f": {
                "Name": "gateway_41ebd4fc365a",
                "EndpointID": "1cb2e4e3431a4c2ce1ed7c0ac9bc8dee67c06982344a75312e20e4a7d6e8972c",
                "MacAddress": "02:42:ac:12:00:02",
                "IPv4Address": "172.18.0.2/16",
                "IPv6Address": ""
            }
        },
        "Options": {
            "com.docker.network.bridge.enable_icc": "false",
            "com.docker.network.bridge.enable_ip_masquerade": "true",
            "com.docker.network.bridge.name": "docker_gwbridge"
        }
    }
]
~/D/e/m/compose (develop) $ docker network disconnect -f docker_gwbridge 41ebd4fc365ae07543fd8454263d7c049d8e73036cddb22379ca1ce08a65402f
Error response from daemon: No such container: 41ebd4fc365ae07543fd8454263d7c049d8e73036cddb22379ca1ce08a65402f
~/D/e/m/compose (develop) $ docker network disconnect -f docker_gwbridge 1cb2e4e3431a4c2ce1ed7c0ac9bc8dee67c06982344a75312e20e4a7d6e8972c
Error response from daemon: No such container: 1cb2e4e3431a4c2ce1ed7c0ac9bc8dee67c06982344a75312e20e4a7d6e8972c
~/D/e/m/compose (develop) $ docker network rm docker_gwbridge
Error response from daemon: 500 Internal Server Error: network docker_gwbridge has active endpoints

Saya pertama kali mencoba menghapus wadah dengan nama wadah (tidak ditampilkan), lalu dengan id, lalu dengan id titik akhir wadah. Tidak ada yang berhasil. Kemudian saya masuk ke Host buruh pelabuhan, dan menggunakan klien buruh pelabuhan lokal untuk mengeluarkan perintah melalui soket unix buruh pelabuhan:

root@dv-vm2:~# docker network disconnect -f docker_gwbridge 41ebd4fc365ae07543fd8454263d7c049d8e73036cddb22379ca1ce08a65402f
Error response from daemon: endpoint 41ebd4fc365ae07543fd8454263d7c049d8e73036cddb22379ca1ce08a65402f not found
root@dv-vm2:~# docker network disconnect -f docker_gwbridge 1cb2e4e3431a4c2ce1ed7c0ac9bc8dee67c06982344a75312e20e4a7d6e8972c
Error response from daemon: endpoint 1cb2e4e3431a4c2ce1ed7c0ac9bc8dee67c06982344a75312e20e4a7d6e8972c not found
root@dv-vm2:~# docker network rm docker_gwbridge
Error response from daemon: network docker_gwbridge has active endpoints
root@dv-vm2:~# docker network disconnect -f docker_gwbridge gateway_41ebd4fc365a
root@dv-vm2:~# docker network rm docker_gwbridge
root@dv-vm2:~# docker network inspect docker_gwbridge
[]
Error: No such network: docker_gwbridge

1) Perhatikan output dari swarm vs direct docker client: swarm mengacu pada container; buruh pelabuhan mengacu pada titik akhir. Itu mungkin harus dibuat konsisten.
2) Satu-satunya opsi yang berhasil adalah memberikan nama titik akhir (bukan nama atau id wadah, atau id titik akhir). --help harus menghapus atau beberapa input harus diterima.
3) Saya tidak menguji nama titik akhir dengan swarm, jadi saya tidak tahu apakah itu akan berhasil.

@keithbentrup itu benar. seperti yang saya sarankan sebelumnya. docker network disconnect -f {network} {endpoint-name} ... tolong gunakan nama titik akhir. Kami dapat meningkatkan ini untuk mendukung endpoint-id juga. Tetapi saya ingin memastikan bahwa dengan menggunakan opsi paksa, apakah Anda dapat membuat kemajuan.

@mavenugo tetapi apa yang Anda sarankan bukanlah yang dikatakan bantuan itu. lebih jauh lagi ia tidak memiliki konsistensi dari kebanyakan cmd di mana id/nama dapat dipertukarkan.

kecuali orang lain menemukan utas ini, orang lain akan mengulangi masalah yang sama, jadi sebelum menambahkan dukungan untuk endpoint-id, perbaiki --help .

@keithbentrup kami akan memperbaiki --help dan fungsionalitasnya.

Saya baru saja mereproduksi masalah ini dengan docker v1.11.2 saat mencoba docker-compose down .
Upaya sebelumnya untuk menjalankan docker-compose down memang menutup jaringan app_front.

$ docker-compose down
Removing network app_front
WARNING: Network app_front not found.
Removing network app_back
ERROR: network app_back has active endpoints
$ docker network inspect app_back                                                            
[                                                                                                    
    {                                                                                                
        "Name": "app_back",                                                                  
        "Id": "4a8d557eda7ce06d222fc0a9053069f44e75d25147300796686522a872261245",                    
        "Scope": "local",                                                                            
        "Driver": "bridge",                                                                          
        "EnableIPv6": false,                                                                         
        "IPAM": {                                                                                    
            "Driver": "default",                                                                     
            "Options": null,                                                                         
            "Config": [                                                                              
                {                                                                                    
                    "Subnet": "172.22.0.0/16",                                                       
                    "Gateway": "172.22.0.1/16"                                                       
                }                                                                                    
            ]                                                                                        
        },                                                                                           
        "Internal": false,                                                                           
        "Containers": {                                                                              
            "702e9916e86b7f77af363014134f160a8dcd189399719e062069c10f735cb927": {                    
                "Name": "app_db_1",                                                          
                "EndpointID": "1decedbca5bc704be84f19e287926361d196d20fe2a9bbf092ab15b37b856b3a",    
                "MacAddress": "02:42:ac:16:00:02",                                                   
                "IPv4Address": "172.22.0.2/16",                                                      
                "IPv6Address": ""                                                                    
            }                                                                                        
        },                                                                                           
        "Options": {},                                                                               
        "Labels": {}                                                                                 
    }                                                                                                
]                                                                                                    

info buruh pelabuhan

Containers: 17                                                                                   
 Running: 1                                                                                      
 Paused: 0                                                                                       
 Stopped: 16                                                                                     
Images: 140                                                                                      
Server Version: 1.11.2                                                                           
Storage Driver: aufs                                                                             
 Root Dir: /mnt/sda1/var/lib/docker/aufs                                                         
 Backing Filesystem: extfs                                                                       
 Dirs: 245                                                                                       
 Dirperm1 Supported: true                                                                        
Logging Driver: json-file                                                                        
Cgroup Driver: cgroupfs                                                                          
Plugins:                                                                                         
 Volume: local                                                                                   
 Network: bridge null host                                                                       
Kernel Version: 4.4.12-boot2docker                                                               
Operating System: Boot2Docker 1.11.2 (TCL 7.1); HEAD : a6645c3 - Wed Jun  1 22:59:51 UTC 2016    
OSType: linux                                                                                    
Architecture: x86_64                                                                             
CPUs: 1                                                                                          
Total Memory: 1.955 GiB                                                                          
Name: default                                                                                    
ID: LKRP:E2TX:KNVZ:UD4M:FIGG:ZROO:CIA5:WBKH:RNUB:KXTQ:E6DC:545P                                  
Docker Root Dir: /mnt/sda1/var/lib/docker                                                        
Debug mode (client): false                                                                       
Debug mode (server): true                                                                        
 File Descriptors: 18                                                                            
 Goroutines: 38                                                                                  
 System Time: 2016-06-15T22:44:13.34779866Z                                                      
 EventsListeners: 0                                                                              
Username: tohagan                                                                                
Registry: https://index.docker.io/v1/                                                            
Labels:                                                                                          
 provider=virtualbox                                                                             

Saya memiliki beberapa masalah ketika mencoba memutuskan titik akhir swarm overlay,

Respons kesalahan dari daemon: network es-swarm-overlay memiliki titik akhir yang aktif

@rmb938 tolong katakan apa yang salah? mungkin memiliki masalah lain dengan pertanyaan ini?

@mavenugo

docker network disconnect -f  [Network-Name] [Endpoint-Name] 

Ini bekerja untuk saya.

Saya mungkin memiliki masalah yang sama dengan docker 1.13.0 .

Karena tidak ada seorang pun di utas ini yang memberikan contoh tentang apa yang saya lakukan, saya akan mempostingnya.

Untuk selesai, ini adalah kesalahan yang memulainya. Mungkin karena saya memiliki codekitchen/dinghy-http-proxy:2.5.0 yang mendengarkan pada port 80.

$ docker-compose -f deploy/docker-compose/docker-compose.yml
Creating network "dockercompose_default" with the default driver
Creating dockercompose_front-end_1
# and so on..

ERROR: for edge-router  Cannot start service edge-router: driver failed programming external connectivity on endpoint dockercompose_edge-router_1 (3ed8fb6cf4bc221dce615a9a3c5b8e4f0f8332e00e6c6d9b9f9bf0b09da57b36): Bind for 0.0.0.0:80 failed: port is already allocated
ERROR: Encountered errors while bringing up the project.

Dan mencoba untuk menurunkan semuanya:

$ docker-compose -f deploy/docker-compose/docker-compose.yml down
Stopping dockercompose_front-end_1
# and so on..
ERROR: network dockercompose_default has active endpoints

Dan bagaimana saya mematikan jaringan:

$ docker network inspect dockercompose_default
[
    {
        "Name": "dockercompose_default", # <--- Param 1
        "Id": "dd1326487a637df8a4a7a11856864a0059fca45cb63e8363bfe5196082d42d6e",
        "Created": "2017-02-08T00:22:41.341653339Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.18.0.0/16",
                    "Gateway": "172.18.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Containers": {
            "ea7a142c113700145e894c950b18fd4dec8a53e04a45045f1fb71c47eae1a13b": {
                "Name": "dinghy_http_proxy", # <--- Param 2
                "EndpointID": "38f362af8b22e575cc987f68399a97f3ed10abf2c4cc365460dba768f2df8daa",
                "MacAddress": "02:42:ac:12:00:0d",
                "IPv4Address": "172.18.0.13/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]
$ docker network disconnect -f dockercompose_default dinghy_http_proxy
$ docker network rm dockercompose_default
dockercompose_default

@nicolaiskogheim memiliki solusi yang valid. Namun, tim saya memiliki file komposisi buruh pelabuhan dengan ~20 kontainer. Jadi saya menemukan solusi lain.

Saya ingin mengatakan bahwa Anda juga dapat memulai ulang daemon buruh pelabuhan (misalnya systemctl restart docker pada centos) dan kemudian tautan antara jaringan dan wadah akan hilang. Anda kemudian dapat docker system prune -f dengan sukses.

@mdotson @nicolaiskogheim tolong buka edisi baru; meskipun pesan kesalahannya sama, masalah asli yang dibahas di sini telah diperbaiki. Apakah Anda hanya melihat ini saat menggunakan penulisan buruh pelabuhan? Dalam hal ini, itu juga bisa menjadi masalah dalam urutan di mana docker compose melakukan tindakan?

@thaJeztah Hanya dengan docker-compose. Saya mengalaminya hanya sekali ketika kotak Jenkins saya kehabisan memori dan saya hampir tidak berhasil membunuh wadah buruh pelabuhan. Mungkin tidak ada cukup memori untuk dialokasikan untuk menghapus tautan antara wadah dan jaringan?

Tidak yakin, tetapi bagaimanapun juga, saya pikir kebanyakan orang mencari pesan kesalahan di Google dan akan tiba di sini mencari beberapa perintah untuk disalin dan ditempel untuk memperbaiki masalah mereka.

Saya memiliki masalah yang sama dengan @nicolaiskogheim dan @mdotson , wadah influxdb saya kehabisan memori dan menjadi tidak sehat. Saya tidak dapat menghapusnya, hentikan atau hapus (saya berhasil menghapusnya dengan mode paksa).
Setelah itu saya mencoba memulai sekali lagi buruh pelabuhan dengan docker-compose :

# docker-compose -f /etc/docker/docker-compose.yml up -d
Creating influxdb1

ERROR: for influxdb  Cannot start service influxdb: service endpoint with name influxdb1 already exists
ERROR: Encountered errors while bringing up the project.

daripada mencoba menghapus jaringan:

# docker network rm 834ea759c916
Error response from daemon: network docker_default has active endpoints

dan daripada saya mencoba solusi @nicolaiskogheim :

# docker network disconnect -f docker_default influxdb1
Client:
 Version:      1.13.1
 API version:  1.26
 Go version:   go1.7.5
 Git commit:   092cba3
 Built:        Wed Feb  8 06:50:14 2017
 OS/Arch:      linux/amd64

Server:
 Version:      1.13.1
 API version:  1.26 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   092cba3
 Built:        Wed Feb  8 06:50:14 2017
 OS/Arch:      linux/amd64
 Experimental: false
docker-compose version 1.11.1, build 7c5d5e4
docker-py version: 2.0.2
CPython version: 2.7.12
OpenSSL version: OpenSSL 1.0.2g  1 Mar 2016

restart layanan buruh pelabuhan memperbaiki masalah bagi saya.

sudo service docker restart

docker network rm <network name>

Saya melihat masalah yang sama ketika mencoba menghapus tumpukan:

> sudo docker stack rm my-stack
Removing network my-stack_default
Failed to remove network g0450dknntdsfj1o055mk4efm: Error response from daemon: network my-stack_default has active endpointsFailed to remove some resources

Saya pertama kali membuat tumpukan seperti ini:

sudo docker stack deploy -c docker-compose.yml --with-registry-auth my-stack

Saya menggunakan versi ini:

Client:
 Version:      17.03.1-ce
 API version:  1.27
 Go version:   go1.7.5
 Git commit:   c6d412e
 Built:        Mon Mar 27 17:14:09 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.03.1-ce
 API version:  1.27 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   c6d412e
 Built:        Mon Mar 27 17:14:09 2017
 OS/Arch:      linux/amd64
 Experimental: false

Untungnya, sudo service docker restart memperbaikinya, tetapi masih bukan perilaku yang ideal.

Menemukannya di 17.07.0-ce, pendekatan disconnect tidak berhasil, kemudian restart buruh pelabuhan dan jalankan rm lagi dengan sukses.

Saya telah mengalami ini dengan swarm cluster 17,06-ce juga; kehabisan opsi selain me-reboot.

sudo service docker restart menghilangkannya untuk saya di ubuntu, memungkinkan saya untuk menyebarkan & memulai wadah saya lagi.

Juga berfungsi jika salah satu wadah menolak untuk terbunuh (terjadi lebih dari yang saya harapkan). Mengganggu karena membuat saya menurunkan semua layanan karena satu wadah nakal.

Mengalami masalah ini juga di 17.09.0-ce. Buka kembali ini!

Ini sering terjadi pada saya di lingkungan dengan memori rendah. Lihat apakah menambahkan memori akan membuatnya lebih baik, proses saya berhenti secara normal sekarang.

@tomholub Tidak, memori bukan masalah. Tetapi memulai kembali layanan buruh pelabuhan, maka saya dapat menghapus jaringan.

Masih mengalami masalah ini dari waktu ke waktu ketika mencoba menghentikan dan menghapus wadah yang berfungsi secara aktif. (Docker untuk Mac Versi 17.09.0-ce-mac35 (19611) Saluran: a98b7c1b7c stabil)

Client:
 Version:      17.09.0-ce
 API version:  1.32
 Go version:   go1.8.3
 Git commit:   afdb6d4
 Built:        Tue Sep 26 22:40:09 2017
 OS/Arch:      darwin/amd64

Server:
 Version:      17.09.0-ce
 API version:  1.32 (minimum version 1.12)
 Go version:   go1.8.3
 Git commit:   afdb6d4
 Built:        Tue Sep 26 22:45:38 2017
 OS/Arch:      linux/amd64
 Experimental: false
$ uname -a
Darwin Alexei-Workstation.local 16.7.0 Darwin Kernel Version 16.7.0: Wed Oct  4 00:17:00 PDT 2017; root:xnu-3789.71.6~1/RELEASE_X86_64 x86_64

Biasanya hilang jika saya menunggu beberapa detik secara acak. Tapi itu masih ada.

OMONG-OMONG. Bagi saya itu terjadi selama docker-compose down --volumes --remove-orphans

masih melihat "jaringan yatim" ini bisakah Anda membuka kembali @rmb938 @thaJeztah

Respons kesalahan dari daemon: jaringan abcd_default id 3f2f1a6cb1cee2d82f2e2e59d10a099834a12b18eb7e3e48d6482d758bd93617 memiliki titik akhir aktif

docker version
Client:
 Version:      17.06.0-ce
 API version:  1.30
 Go version:   go1.8.3
 Git commit:   02c1d87
 Built:        Fri Jun 23 21:23:31 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.06.0-ce
 API version:  1.30 (minimum version 1.12)
 Go version:   go1.8.3
 Git commit:   02c1d87
 Built:        Fri Jun 23 21:19:04 2017
 OS/Arch:      linux/amd64

satu-satunya cara untuk memangkasnya tampaknya dengan menyalakan kembali mesin

Semoga beruntung hari ini

docker-compose down
Removing network gen365cms_default
ERROR: network gen365cms_default id b6c51b1a83ee2b938ee1c7f7148347dc9ef80a8d8ed93334873f1f84b3f27c04 has active endpoints
docker version
Client:
 Version:   17.12.0-ce-rc4
 API version:   1.35
 Go version:    go1.9.2
 Git commit:    6a2c058
 Built: Wed Dec 20 15:53:52 2017
 OS/Arch:   darwin/amd64

Server:
 Engine:
  Version:  17.12.0-ce-rc4
  API version:  1.35 (minimum version 1.12)
  Go version:   go1.9.2
  Git commit:   6a2c058
  Built:    Wed Dec 20 15:59:49 2017
  OS/Arch:  linux/amd64
  Experimental: true

Ini masih dapat direproduksi pada Docker version 18.06.1-ce, build e68fc7a
Tampaknya bahkan ketika wadah file penulisan dihapus, titik akhirnya terkadang tidak dihapus, yang terkadang dapat terjadi pada kehilangan daya, sehingga penulisan gagal untuk memulai sepenuhnya atau menghapus sepenuhnya.

Ketika tidak ada perintah yang berfungsi maka lakukan
sudo service docker restart
masalah anda akan terpecahkan

Atau sudo reboot -f . Bekerja 100%.

saya memiliki masalah serupa hari ini. yang saya lakukan adalah menjalankan "docker container ls -a" dan melihat beberapa container yang masih berjalan memanfaatkan jaringan yang saya luncurkan melalui docker stack. jadi secara manual ketika saya membunuh wadah itu, saya dapat menghapus jaringan

Saya yakin saya baru saja mengalami masalah yang disebutkan @danwdart di sini . Saya menggunakan Docker version 18.09.2, build 6247962 dan saya menjalankan docker-compose -f $PATH_TO_MY_CONFIG down , dan saya menerima kesalahan berikut:

ERROR: error while removing network: network michaelmoore_default id 6838b92e60a83f53c5637065e449f9124a2f297c482f1a7326cf247bfd38f70c has active endpoints

Saya benar-benar membiarkan baterai laptop saya mati tadi malam, yang jarang saya lakukan, dan setelah me-restart buruh pelabuhan saya dapat menjalankan perintah penulisan "down" yang sama dengan sukses.

Ini mungkin jelas bagi sebagian orang, tetapi tidak bagi saya, hanya berpikir saya akan membagikannya.

Saya hanya perlu menjalankan docker-compose rm - docker-compose down adalah apa yang biasanya saya lakukan dan ps -a tidak menunjukkan wadah jadi ini benar-benar membuat saya tersandung sampai saya menjalankan cmd rm . Pikir saya akan berbagi.

Saya berakhir dengan masalah yang sama, karena jaringan tidak dapat menghapus semua tindakan, mencatat membantu. versi saya adalah versi Docker 18.09.6, build 481bc77

Untuk memperbaikinya, saya telah me-restart layanan buruh pelabuhan. dengan "sudo service docker restart" setelah itu saya dapat menghapus dengan "docker network rm {network}"

@danwdart Alasan lain untuk ini adalah ketika ada wadah yang menggantung. untuk menghapusnya, gunakan perintah docker-compose down --remove-orphans yang akan melakukan trik.

Halo dari 2019, @mavenugo Saya ingin menyampaikan terima kasih yang tulus dan tulus untuk solusi yang satu ini di tahun 2016.

Ini masih menjadi masalah setelah lebih dari empat tahun. Apakah ada cara yang lebih sederhana untuk memutuskan setiap wadah dari setiap jaringan yang terhubung dengannya daripada skrip shell 10+ baris? FWIW ini sepertinya berhasil:

#!/usr/bin/env bash

set -o errexit -o nounset -o pipefail

trap 'rm --recursive "$workspace"' EXIT
workspace="$(mktemp --directory)"
error_log="${workspace}/error.log"

for container_id in $(docker ps --all --quiet)
do
    readarray -t network_names < <(docker inspect "$container_id" | jq --raw-output '.[] | .NetworkSettings.Networks | if . == null then empty else keys | .[] end')
    for network_name in "${network_names[@]}"
    do
        echo "Disconnecting container ${container_id} from network ${network_name}."
        exit_code=0
        docker network disconnect "$network_name" "$container_id" 2> "$error_log" || exit_code="$?"
        if [[ "$exit_code" -ne 0 ]]
        then
            if grep --fixed-strings --quiet --regexp 'not connected to network' --regexp 'not connected to the network' "$error_log"
            then
                echo 'Ignoring "not connected" error…'
            else
                cat "$error_log" >&2
                exit "$exit_code"
            fi
        fi
    done
done

Singkatnya:

  1. Siapkan jebakan untuk menghapus ruang kerja saat keluar.
  2. Buat ruang kerja.
  3. Untuk setiap wadah:

    1. Untuk setiap jaringan wadah dikaitkan dengan:



      1. Cobalah untuk memutuskan sambungan.


      2. Jika pemutusan gagal karena sudah tidak terhubung ke jaringan, abaikan kesalahan (sayangnya tampaknya acak apakah "" adalah bagian dari pesan kesalahan itu). Jika tidak, gagal.



Kombinasi solusi @mavenugo dan pemangkasan jaringan buruh pelabuhan setelah memutuskan semuanya dari jaringan berfungsi untuk saya.

Terima kasih lagi @mavenugo di sini dari 2020

@mavenugo Jika docker network disconnect -f {network} {endpoint-name} maksud Anda docker network disconnect [OPTIONS] NETWORK CONTAINER per docker network disconnect --help , saya mencobanya, tetapi mengeluh (tidak mengherankan) dengan No such container .

Jika yang Anda maksud adalah EndpointID alih-alih nama/id wadah, saya tidak mencobanya (tetapi akan melakukannya lain kali) karena bukan itu yang disarankan --help .

@keithbentrup - {endpoint-name} pada perintah di atas pada dasarnya adalah container-id/name dalam output yang didapat dari perintah di bawah ini:

$deminem: docker network inspect e60b9386b9e2 mana e60b9386b9e2 adalah id jaringan.

[
    {
        "Name": "project-name-master_default",
        "Id": "e60b9386b9e20f5222513bd6166f6d8e3224e72e906e2b07376e88ba79d87b26",
        "Created": "2020-04-02T18:48:29.2694181Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.18.0.0/16",
                    "Gateway": "172.18.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": true,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "d435c36e882ec91dff780c55c0399c52b14096baea402647eaff2f1593602df9": {
                **"Name": "project-name-master_monitoring_1"**,
                "EndpointID": "7838e98efd8be4cabccc778707efadbb6194cbd73dc907f0129ee8b9119e4349",
                "MacAddress": "02:42:ac:12:00:0e",
                "IPv4Address": "172.18.0.14/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {
            "com.docker.compose.network": "default",
            "com.docker.compose.project": "project-name",
            "com.docker.compose.version": "1.25.4"
        }
    }
]

Catatan: Seperti yang disorot tebal. "Name": "project-name-master_monitoring_1" .

Baru saja dengan

docker --version
Docker version 19.03.12-ce, build 48a66213fe
uname -a
Linux jotunheim 5.8.5-arch1-1 #1 SMP PREEMPT Thu, 27 Aug 2020 18:53:02 +0000 x86_64 GNU/Linux

di Arch. Restart layanan membantu.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat