A durable queue means the queue is retained even after restarting the rabbitmq service. In the example below, queue1 survived rabbitmq restart but queue2 did not.
➜ docker exec -it rabbitmq rabbitmqadmin declare queue --name=queue1 --durable=true
➜ docker exec -it rabbitmq rabbitmqctl list_queues
Timeout: 60.0 seconds ...
Listing queues for vhost / ...
name messages
queue1 0
➜ docker stop rabbitmq
rabbitmq
➜ docker start rabbitmq
rabbitmq
➜ docker exec -it rabbitmq rabbitmqctl list_queues
Timeout: 60.0 seconds ...
Listing queues for vhost / ...
name messages
queue1 0
➜ docker exec -it rabbitmq rabbitmqadmin declare queue --name=queue2 --durable=false
➜ docker exec -it rabbitmq rabbitmqctl list_queues
Timeout: 60.0 seconds ...
Listing queues for vhost / ...
name messages
queue1 0
queue2 0
➜ docker stop rabbitmq
rabbitmq
➜ docker start rabbitmq
rabbitmq
➜ docker exec -it rabbitmq rabbitmqctl list_queues
Timeout: 60.0 seconds ...
Listing queues for vhost / ...
name messages
queue1 0