Docker plugin
The Docker plugin allows you to query Docker containers, images and networks over SQL.
Installation
anyquery install docker
Usage
SELECT * FROM docker_containers;
SELECT * FROM docker_images('tcp://0.0.0.0:2375');
SELECT * FROM docker_networks;
Each table can specify another docker daemon to connect to by passing the connection string as an argument to the table function. You can also set the column host like this:
SELECT * FROM docker_containers WHERE host='tcp://0.0.0.0:2375';
Finally, the plugin reads the environment variable DOCKER_HOST to connect to the docker daemon. If the variable is not set, it will connect to the default docker daemon.
Schema
docker_containers
| Column index | Column name | type | 
| 0 | id | TEXT | 
| 1 | names | TEXT | 
| 2 | image | TEXT | 
| 3 | image_id | TEXT | 
| 4 | command | TEXT | 
| 5 | created_at | TEXT | 
| 6 | ports | TEXT | 
| 7 | labels | TEXT | 
| 8 | size_rw | INTEGER | 
| 9 | size_root_fs | INTEGER | 
| 10 | state | TEXT | 
| 11 | status | TEXT | 
| 12 | networks | TEXT | 
| 13 | mounts | TEXT | 
docker_container
| Column index | Column name | type | 
| 0 | id | TEXT | 
| 1 | created_at | TEXT | 
| 2 | path | TEXT | 
| 3 | args | TEXT | 
| 4 | container_state | TEXT | 
| 5 | image | TEXT | 
| 6 | resolv_conf_path | TEXT | 
| 7 | hostname_path | TEXT | 
| 8 | hosts_path | TEXT | 
| 9 | log_path | TEXT | 
| 10 | name | TEXT | 
| 11 | restart_count | INTEGER | 
| 12 | driver | TEXT | 
| 13 | platform | TEXT | 
| 14 | mount_label | TEXT | 
| 15 | process_label | TEXT | 
| 16 | host_config | TEXT | 
| 17 | mounts | TEXT | 
| 18 | config | TEXT | 
| 19 | network_settings | TEXT | 
docker_images
| Column index | Column name | type | 
| 0 | id | TEXT | 
| 1 | created_at | TEXT | 
| 2 | labels | TEXT | 
| 3 | parent_id | TEXT | 
| 4 | repo_tags | TEXT | 
| 5 | repo_digests | TEXT | 
| 6 | container_count | INTEGER | 
| 7 | shared_size | INTEGER | 
| 8 | size | INTEGER | 
docker_networks
| Column index | Column name | type | 
| 0 | id | TEXT | 
| 1 | name | TEXT | 
| 2 | created_at | TEXT | 
| 3 | scope | TEXT | 
| 4 | driver | TEXT | 
| 5 | enable_ipv6 | INTEGER | 
| 6 | ipam | TEXT | 
| 7 | containers | TEXT | 
| 8 | options | TEXT | 
| 9 | labels | TEXT | 
| 10 | peers | TEXT | 
| 11 | services | TEXT | 
| 12 | internal | INTEGER | 
| 13 | attachable | INTEGER | 
| 14 | ingress | INTEGER | 
| 15 | config_only | INTEGER | 
| 16 | config_from | TEXT | 
Caveats
- The plugin does not do any caching. Each query will fetch the data from the docker daemon.
- The plugin does not support inserts/updates/deletes.
- Some columns are returned as JSON objects. You can use the json_extractor the->>operator to extract the data with the json path.