Docker
Overview
Docker API implementation.
Provides methods to interact with Docker containers, images, registries, networks, projects, logs, migration, and utilities on a Synology NAS.
Covers all 12 SYNO.Docker.* API namespaces exposed by DSM.
Methods
containers
Get list of containers.
Internal API
SYNO.Docker.Container
Returns
dict[str, object]
A dictionary containing the containers information.
Example return
Click to expand
{
"data": {
"1111aaaa-22bb-33cc-44dd-555555eeeeee": {
"containerIds": [
"21bbe0c6a5d3b246f347367826a78db47f0f334a44bd6621e084f68f0ad63044"
],
"created_at": "2025-03-14T14:07:04.874304Z",
"enable_service_portal": true,
"id": "187b2816-fd6c-4f87-b178-6d94806c7404",
"is_package": false,
"name": "pihole",
"path": "/volume1/docker/test",
"service_portal_name": "test",
"service_portal_port": 53,
"service_portal_protocol": "http",
"services": [
{
"display_name": "test (project)",
"id": "Docker-Project-187b2816-fd6c-4f87-b178-6d94806c7404",
"proxy_target": "http://127.0.0.1:53",
"service": "Docker-Project-187b2816-fd6c-4f87-b178-6d94806c7404",
"type": "reverse_proxy"
}
],
"share_path": "/docker/test",
"state": "",
"status": "STOPPED",
"updated_at": "2025-03-14T15:17:31.840634Z",
"version": 2
},
"2222bbbb-33cc-44dd-55ee-666666ffffff": {
"containerIds": [
"d9301fc3aa925514760e7714a489cc2d14a26ed6e8169479ac6c356de6b5a7d9",
"89d63c6c3c4e299c82c2dcc4ba353c4c1e6c1c938b572153fe9f615646edc4f6",
"4a37c7a4a5cab34658071972c2c2bc3ff89dc6dc1407fd98751c7f227574a088",
"6df4151b6e24ea3b68b62851d65c8a830e342085f6f9cf0cfdf1e6f98357d9b1",
"1a1088cdf8d56e2443c22fa5c6f5658384ba894fe050d82b9214fb84342b0d93",
"36984528684d20c775ac67b3a286e48a5aa8ba73a36f58cfd062a8649d457328"
],
"created_at": "2024-07-21T11:01:31.019924Z",
"enable_service_portal": true,
"id": "d787e5ac-1b6a-4dd4-a2d9-35bcd5ad9577",
"is_package": false,
"name": "test2",
"path": "/volume1/docker/test2",
"service_portal_name": "test2-server",
"service_portal_port": 2283,
"service_portal_protocol": "http",
"services": [
{
"display_name": "test2 (project)",
"id": "Docker-Project-d787e5ac-1b6a-4dd4-a2d9-35bcd5ad9577",
"proxy_target": "http://127.0.0.1:2283",
"service": "Docker-Project-d787e5ac-1b6a-4dd4-a2d9-35bcd5ad9577",
"type": "reverse_proxy"
}
],
"share_path": "/docker/test2",
"state": "",
"status": "ERROR",
"updated_at": "2025-06-12T14:48:08.127657Z",
"version": 2
}
},
"success": true
}
container_resources
Get resources of all containers.
Internal API
SYNO.Docker.Container.Resource
Returns
dict[str, object]
A dictionary containing the resources information of the containers.
Example return
Click to expand
{
"data": {
"resources": [
{
"cpu": 0,
"memory": 21106688,
"memoryPercent": 0.517403244972229,
"name": "container1"
},
{
"cpu": 0,
"memory": 0,
"memoryPercent": 0,
"name": "container2"
},
{
"cpu": 0,
"memory": 0,
"memoryPercent": 0,
"name": "stopped_container"
}
]
},
"httpd_restart": false,
"success": true
}
system_resources
Get system resources.
Internal API
SYNO.Core.System.Utilization
Returns
dict[str, object]
A dictionary containing the system resources information.
Example return
Click to expand
{
"data" : {
"cpu" : {
"15min_load" : 14,
"1min_load" : 29,
"5min_load" : 16,
"device" : "System",
"other_load" : 2,
"system_load" : 0,
"user_load" : 1
},
"disk" : {
"disk" : [
{
"device" : "sata2",
"display_name" : "Drive 2",
"read_access" : 0,
"read_byte" : 0,
"type" : "internal",
"utilization" : 0,
"write_access" : 0,
"write_byte" : 0
},
{
"device" : "sata1",
"display_name" : "Drive 1",
"read_access" : 0,
"read_byte" : 0,
"type" : "internal",
"utilization" : 0,
"write_access" : 0,
"write_byte" : 0
}
],
"total" : {
"device" : "total",
"read_access" : 0,
"read_byte" : 0,
"utilization" : 0,
"write_access" : 0,
"write_byte" : 0
}
},
"lun" : [],
"memory" : {
"avail_real" : 444840,
"avail_swap" : 4163752,
"buffer" : 21716,
"cached" : 2658180,
"device" : "Memory",
"memory_size" : 4194304,
"real_usage" : 21,
"si_disk" : 0,
"so_disk" : 0,
"swap_usage" : 7,
"total_real" : 3983740,
"total_swap" : 4489140
},
"network" : [
{
"device" : "total",
"rx" : 6822,
"tx" : 6336
},
{
"device" : "eth0",
"rx" : 0,
"tx" : 0
},
{
"device" : "eth1",
"rx" : 0,
"tx" : 0
},
{
"device" : "eth2",
"rx" : 6822,
"tx" : 6336
}
],
"nfs" : [],
"smb" : {
"smb_cmd" : [],
"smb_cpu" : [],
"smb_rwpkt" : []
},
"space" : {
"total" : {
"device" : "total",
"read_access" : 0,
"read_byte" : 0,
"utilization" : 0,
"write_access" : 0,
"write_byte" : 0
},
"volume" : [
{
"device" : "dm-1",
"display_name" : "volume1",
"read_access" : 0,
"read_byte" : 0,
"utilization" : 0,
"write_access" : 0,
"write_byte" : 0
}
]
},
"time" : 1749998465
},
"httpd_restart" : false,
"success" : true
}
downloaded_images
List of docker images available on Synology NAS.
Internal API
SYNO.Docker.Image
Parameters
limit int
The maximum number of docker images to return. Defaults -1 (all).
offset int
The offset for pagination. Defaults to 0.
show_dsm bool
Defaults to False.
Returns
dict[str, object]
A dictionary containing the list of downloaded images.
Example return
Click to expand
{
"data" : {
"images" : [
{
"created" : 1745034718,
"description" : "",
"digest" : "",
"id" : "sha256:14300de7e087290520999f00d6a12b61385d1fe780ea83f38eabb7e8be66225f",
"remote_digest" : "",
"repository" : "caddy",
"size" : 50509416,
"tags" : [ "alpine" ],
"upgradable" : false,
"virtual_size" : 50509416
}
],
"limit" : 1,
"offset" : 0,
"total" : 1
},
"httpd_restart" : false,
"success" : true
}
images_registry_resources
Get list of docker registries.
Internal API
SYNO.Docker.Registry
Returns
dict[str, object]
A dictionary containing the list of docker registries.
Example return
Click to expand
{
"data" : {
"offset" : 0,
"registries" : [
{
"enable_registry_mirror" : false,
"enable_trust_SSC" : true,
"mirror_urls" : [],
"name" : "Docker Hub",
"syno" : true,
"url" : "https://registry.hub.docker.com"
}
],
"total" : 1,
"using" : "Docker Hub"
},
"httpd_restart" : false,
"success" : true
}
network
Get list of docker networks.
Internal API
SYNO.Docker.Network
Returns
dict[str, object]
A dictionary containing the list of docker networks.
Example return
Click to expand
{
"data" : {
"network" : [
{
"containers" : [ "vault" ],
"driver" : "bridge",
"enable_ipv6" : false,
"gateway" : "172.22.0.1",
"id" : "b741915823aacdffc8ab806ab348e198c2c486b4dd5df2627b0d586259926b1a",
"iprange" : "",
"name" : "vault_default",
"subnet" : "172.22.0.0/16"
},
{
"containers" : [],
"driver" : "host",
"enable_ipv6" : false,
"gateway" : "",
"id" : "2fc7ebae3901359e7bc9d7b50fad1f6aa2f8c1076474cadc9f83b3256f921ff3",
"iprange" : "",
"name" : "host",
"subnet" : ""
}
]
},
"httpd_restart" : false,
"success" : true
}
search_image
Search for docker image in all available registries.
Internal API
SYNO.Docker.Registry
Parameters
query str
Name of the docker image to search for. Defaults to None.
Returns
dict[str, object]
A dictionary containing the search results for the docker image.
Example return
Click to expand
{
"data" : {
"data" : [
{
"description" : "Caddy 2 is a powerful, enterprise-ready, open source web server with automatic HTTPS written in Go.",
"downloads" : 650989718,
"is_automated" : false,
"is_official" : true,
"name" : "caddy",
"registry" : "https://registry.hub.docker.com",
"star_count" : 881
},
{
"description" : "Caddy is a lightweight, general-purpose web server.",
"downloads" : 111974910,
"is_automated" : true,
"is_official" : false,
"name" : "abiosoft/caddy",
"registry" : "https://registry.hub.docker.com",
"star_count" : 289
}
],
"limit" : 50,
"offset" : 0,
"page_size" : 50,
"total" : 6647
},
"httpd_restart" : false,
"success" : true
}
list_projects
Get list of projects.
Internal API
SYNO.Docker.Project
Returns
dict[str, object]
A dictionary containing the list of projects.
Example return
Click to expand
{
"data" : {
"187b2816-fd6c-4f87-b178-6d94806c7404" : {
"containerIds" : [ "21bbe0c6a5d3b246f347367826a78db47f0f334a44bd6621e084f68f0ad63044" ],
"created_at" : "2025-03-14T14:07:04.874304Z",
"enable_service_portal" : true,
"id" : "187b2816-fd6c-4f87-b178-6d94806c7404",
"is_package" : false,
"name" : "project1",
"path" : "/volume1/docker/project1",
"service_portal_name" : "project1",
"service_portal_port" : 53,
"service_portal_protocol" : "http",
"services" : [
{
"display_name" : "project1 (project)",
"id" : "Docker-Project-187b2816-fd6c-4f87-b178-6d94806c7404",
"proxy_target" : "http://127.0.0.1:53",
"service" : "Docker-Project-187b2816-fd6c-4f87-b178-6d94806c7404",
"type" : "reverse_proxy"
}
],
"share_path" : "/docker/project1",
"state" : "",
"status" : "STOPPED",
"updated_at" : "2025-03-14T15:17:31.840634Z",
"version" : 2
},
"3c091e8b-f68f-4161-97a3-fc3db3f4bdc9" : {
"containerIds" : [ "ee220111cff2d2e7b9d764a4b781f9e23faa3cd7f3048d315aa6c95d48f0a1e4" ],
"created_at" : "2025-05-27T08:33:03.213407Z",
"enable_service_portal" : false,
"id" : "3c091e8b-f68f-4161-97a3-fc3db3f4bdc9",
"is_package" : false,
"name" : "project2",
"path" : "/volume1/docker/project2",
"service_portal_name" : "",
"service_portal_port" : 0,
"service_portal_protocol" : "",
"services" : [],
"share_path" : "/docker/project2",
"state" : "",
"status" : "RUNNING",
"updated_at" : "2025-06-15T10:38:52.247951Z",
"version" : 2
}
},
"httpd_restart" : false,
"success" : true
}
get_project_info
Get information about a specific project.
Internal API
SYNO.Docker.Project
Parameters
project_id str
ID of the project to get information about. Defaults to None.
Returns
dict[str, object]
A dictionary containing the project information.
Example return
Click to expand
{
"data" : {
"containerIds" : [ "1f2aa674d7942c25789c144c1e4ea04388e5a914e1ed3d7a1b8978f8f2f81ebf" ],
"containers" : [
{
"AppArmorProfile" : "docker-default",
"Args" : [ "server", "-config=/vault/file/" ],
"Config" : {
"AttachStderr" : true,
"AttachStdin" : false,
"AttachStdout" : true,
"Cmd" : null,
"Domainname" : "",
"Entrypoint" : [ "vault", "server", "-config=/vault/file/" ],
"Env" : [
"VAULT_RAFT_PATH=/vault/file",
"VAULT_DEV_LISTEN_ADDRESS=0.0.0.0:8200",
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"NAME=vault",
"VERSION="
],
"ExposedPorts" : {
"8200/tcp" : {}
},
"Healthcheck" : {
"Interval" : 30000000000,
"Retries" : 5,
"Test" : [ "CMD", "vault", "status" ],
"Timeout" : 10000000000
},
"Hostname" : "vault",
"Image" : "hashicorp/vault:latest",
"Labels" : {
"com.docker.compose.config-hash" : "6a08fb0e6d57f8ad25b3d78cac40d369be831be5cf98406520e514d68aa03251",
"com.docker.compose.container-number" : "1",
"com.docker.compose.depends_on" : "",
"com.docker.compose.image" : "sha256:2006f053b116f3a57dad1d8fff9d19c13f3e801e594dcbd58e219d4ccb654337",
"com.docker.compose.oneoff" : "False",
"com.docker.compose.project" : "vault",
"com.docker.compose.project.config_files" : "/volume1/docker/vault/compose.yaml",
"com.docker.compose.project.working_dir" : "/volume1/docker/vault",
"com.docker.compose.replace" : "1153d033ece9eb4242926f805a211daed65922652fdf73ffcf8147e20e4c0ce2",
"com.docker.compose.service" : "vault",
"com.docker.compose.version" : "2.20.1",
"description" : "Vault is a tool for securely accessing secrets. A secret is anything that you want to tightly control access to, such as API keys, passwords, certificates, and more. Vault provides a unified interface to any secret, while providing tight access control and recording a detailed audit log.",
"maintainer" : "Vault Team <vault@hashicorp.com>",
"name" : "Vault",
"release" : "322786e236e268532e4b189845971ba67b5cbb23",
"revision" : "322786e236e268532e4b189845971ba67b5cbb23",
"summary" : "Vault is a tool for securely accessing secrets.",
"vendor" : "HashiCorp",
"version" : "1.19.4"
},
"OnBuild" : null,
"OpenStdin" : false,
"StdinOnce" : false,
"Tty" : false,
"User" : "",
"Volumes" : {
"/vault/file" : {},
"/vault/logs" : {}
},
"WorkingDir" : "/"
},
"Created" : "2025-05-25T17:57:06.296933361Z",
"Driver" : "btrfs",
"ExecIDs" : null,
"GraphDriver" : {
"Data" : null,
"Name" : "btrfs"
},
"HostConfig" : {
"AutoRemove" : false,
"Binds" : [
"/volume1/docker/vault/data:/vault/file:rw",
"/volume1/docker/vault/logs:/vault/logs:rw",
"/volume1/docker/vault/config:/vault/config:rw",
"/volume1/docker/vault/plugins:/vault/plugins:rw",
"/etc/localtime:/etc/localtime:ro"
],
"BlkioDeviceReadBps" : null,
"BlkioDeviceReadIOps" : null,
"BlkioDeviceWriteBps" : null,
"BlkioDeviceWriteIOps" : null,
"BlkioWeight" : 0,
"BlkioWeightDevice" : null,
"CapAdd" : [ "IPC_LOCK" ],
"CapDrop" : null,
"Cgroup" : "",
"CgroupParent" : "",
"CgroupnsMode" : "host",
"ConsoleSize" : [ 0, 0 ],
"ContainerIDFile" : "",
"CpuCount" : 0,
"CpuPercent" : 0,
"CpuPeriod" : 0,
"CpuQuota" : 0,
"CpuRealtimePeriod" : 0,
"CpuRealtimeRuntime" : 0,
"CpuShares" : 768,
"CpusetCpus" : "",
"CpusetMems" : "",
"DeviceCgroupRules" : null,
"DeviceRequests" : null,
"Devices" : null,
"Dns" : [],
"DnsOptions" : [],
"DnsSearch" : [],
"ExtraHosts" : [],
"GroupAdd" : null,
"IOMaximumBandwidth" : 0,
"IOMaximumIOps" : 0,
"IpcMode" : "private",
"Isolation" : "",
"Links" : null,
"LogConfig" : {
"Config" : {},
"Type" : "db"
},
"MaskedPaths" : [
"/proc/asound",
"/proc/acpi",
"/proc/kcore",
"/proc/keys",
"/proc/latency_stats",
"/proc/timer_list",
"/proc/timer_stats",
"/proc/sched_debug",
"/proc/scsi",
"/sys/firmware"
],
"Memory" : 536870912,
"MemoryReservation" : 0,
"MemorySwap" : 1073741824,
"MemorySwappiness" : null,
"NanoCpus" : 0,
"NetworkMode" : "vault_default",
"OomKillDisable" : false,
"OomScoreAdj" : 0,
"PidMode" : "",
"PidsLimit" : null,
"PortBindings" : {
"8200/tcp" : [
{
"HostIp" : "",
"HostPort" : "8205"
}
]
},
"Privileged" : false,
"PublishAllPorts" : false,
"ReadonlyPaths" : [
"/proc/bus",
"/proc/fs",
"/proc/irq",
"/proc/sys",
"/proc/sysrq-trigger"
],
"ReadonlyRootfs" : false,
"RestartPolicy" : {
"MaximumRetryCount" : 5,
"Name" : "on-failure"
},
"Runtime" : "runc",
"SecurityOpt" : [ "no-new-privileges:true" ],
"ShmSize" : 67108864,
"UTSMode" : "",
"Ulimits" : null,
"UsernsMode" : "",
"VolumeDriver" : "",
"VolumesFrom" : null
},
"HostnamePath" : "/volume1/@docker/containers/1f2aa674d7942c25789c144c1e4ea04388e5a914e1ed3d7a1b8978f8f2f81ebf/hostname",
"HostsPath" : "/volume1/@docker/containers/1f2aa674d7942c25789c144c1e4ea04388e5a914e1ed3d7a1b8978f8f2f81ebf/hosts",
"Id" : "1f2aa674d7942c25789c144c1e4ea04388e5a914e1ed3d7a1b8978f8f2f81ebf",
"Image" : "sha256:2006f053b116f3a57dad1d8fff9d19c13f3e801e594dcbd58e219d4ccb654337",
"LogPath" : "/volume1/@docker/containers/1f2aa674d7942c25789c144c1e4ea04388e5a914e1ed3d7a1b8978f8f2f81ebf/log.db",
"MountLabel" : "",
"Mounts" : [
{
"Destination" : "/vault/plugins",
"Mode" : "rw",
"Propagation" : "rprivate",
"RW" : true,
"Source" : "/volume1/docker/vault/plugins",
"Type" : "bind"
},
{
"Destination" : "/etc/localtime",
"Mode" : "ro",
"Propagation" : "rprivate",
"RW" : false,
"Source" : "/etc/localtime",
"Type" : "bind"
},
{
"Destination" : "/vault/config",
"Mode" : "rw",
"Propagation" : "rprivate",
"RW" : true,
"Source" : "/volume1/docker/vault/config",
"Type" : "bind"
},
{
"Destination" : "/vault/file",
"Mode" : "rw",
"Propagation" : "rprivate",
"RW" : true,
"Source" : "/volume1/docker/vault/data",
"Type" : "bind"
},
{
"Destination" : "/vault/logs",
"Mode" : "rw",
"Propagation" : "rprivate",
"RW" : true,
"Source" : "/volume1/docker/vault/logs",
"Type" : "bind"
}
],
"Name" : "/vault",
"NetworkSettings" : {
"Bridge" : "",
"EndpointID" : "",
"Gateway" : "",
"GlobalIPv6Address" : "",
"GlobalIPv6PrefixLen" : 0,
"HairpinMode" : false,
"IPAddress" : "",
"IPPrefixLen" : 0,
"IPv6Gateway" : "",
"LinkLocalIPv6Address" : "",
"LinkLocalIPv6PrefixLen" : 0,
"MacAddress" : "",
"Networks" : {
"vault_default" : {
"Aliases" : [ "vault", "vault", "1f2aa674d794" ],
"DriverOpts" : null,
"EndpointID" : "",
"Gateway" : "",
"GlobalIPv6Address" : "",
"GlobalIPv6PrefixLen" : 0,
"IPAMConfig" : null,
"IPAddress" : "",
"IPPrefixLen" : 0,
"IPv6Gateway" : "",
"Links" : null,
"MacAddress" : "",
"NetworkID" : "b741915823aacdffc8ab806ab348e198c2c486b4dd5df2627b0d586259926b1a"
}
},
"Ports" : {},
"SandboxID" : "d523ddff9d90b2ecc74f20c33db7b4898fa2869f10899ccc6567febd64d7142c",
"SandboxKey" : "/var/run/docker/netns/d523ddff9d90",
"SecondaryIPAddresses" : null,
"SecondaryIPv6Addresses" : null
},
"Path" : "vault",
"Platform" : "linux",
"ProcessLabel" : "",
"ResolvConfPath" : "/volume1/@docker/containers/1f2aa674d7942c25789c144c1e4ea04388e5a914e1ed3d7a1b8978f8f2f81ebf/resolv.conf",
"RestartCount" : 5,
"State" : {
"Dead" : false,
"Error" : "",
"ExitCode" : 1,
"FinishedAt" : "2025-05-25T17:57:30.266770048Z",
"Health" : {
"FailingStreak" : 0,
"Log" : [],
"Status" : "unhealthy"
},
"OOMKilled" : false,
"Paused" : false,
"Pid" : 0,
"Restarting" : false,
"Running" : false,
"StartedAt" : "2025-05-25T17:57:30.184237615Z",
"Status" : "exited"
}
}
],
"content" : "docker-compose.yml contet",
"created_at" : "2025-05-25T17:31:00.875402Z",
"enable_service_portal" : false,
"id" : "b4d44e6c-5ab4-45f7-b380-481ef9839df1",
"is_package" : false,
"name" : "vault",
"path" : "/volume1/docker/vault",
"service_portal_name" : "",
"service_portal_port" : 0,
"service_portal_protocol" : "",
"services" : null,
"share_path" : "/docker/vault",
"state" : "",
"status" : "STOPPED",
"updated_at" : "2025-05-25T17:57:06.257863Z",
"version" : 2
},
"httpd_restart" : false,
"success" : true
}
start_container
Start a container by its name.
Internal API
SYNO.Docker.Container
Parameters
container str
The name of the container.
Returns
dict[str, object]
A dictionary containing the result of the export operation.
Example return
Click to expand
{
"data" : {
"cpu" : 0,
"memory" : 21241856,
"memoryPercent" : 0.52071672677993774,
"name" : "glance",
"start_dependent_container" : false
},
"httpd_restart" : false,
"success" : true
}
stop_container
Stop a container by its name.
Internal API
SYNO.Docker.Container
Parameters
container str
The name of the container.
Returns
dict[str, object]
A dictionary containing the result of the stop operation.
Example return
Click to expand
{
"data" : {
"cpu" : 0,
"memory" : 0,
"memoryPercent" : 0,
"name" : "glance"
},
"httpd_restart" : false,
"success" : true
}
export_container_settings
Export container profile.
file <container>.syno.json will be created in the specified path.
Internal API
SYNO.Docker.Container.Profile
Parameters
container str
The name of the container.
path str
The path on filesystem of Synology NAS where the container settings will be exported.
If not specified, the file will be offered as a download through the browser.
For example: /docker/nging.
Returns
dict[str, object]
A dictionary containing the result of the export operation.
Example return
Click to expand
{
"data" : {},
"httpd_restart" : false,
"success" : true
}
export_container
Export container profile and content to a specified path on Synology nas.
archive <container>.syno.txz will be created in the specified path.
Internal API
SYNO.Docker.Container
Parameters
container str
The name of the container.
path str
The path on filesystem of Synology NAS where the container settings will be exported.
For example: /docker/nging.
Returns
dict[str, object]
A dictionary containing the result of the export operation.
Example return
Click to expand
{
"data" : {},
"httpd_restart" : false,
"success" : true
}
get_logs
Get list of container logs.
Internal API
SYNO.Docker.Container.Log
Parameters
name str
The name of the container.
from_date str
The start date for the logs. Defaults to None.
to_date str
The end date for the logs. Defaults to None.
level str
The log level to filter by. Defaults to None.
keyword str
Keyword to filter logs. Defaults to None.
sort_dir str
Sort direction for the logs, either 'ASC' or 'DESC'. Defaults to 'DESC'.
offset int
The offset for pagination. Defaults to 0.
limit int
The maximum number of logs to return. Defaults to 1000.
Returns
dict[str, object]
A dictionary containing the logs from the specified container.
Example return
Click to expand
{
"data": {
"limit": 1,
"logs": [
{
"created": "2025-06-15T10:38:55.869358659Z",
"docid": "1",
"stream": "stderr",
"text": "2025/06/15 10:38:55 Starting server on :8080"
}
],
"offset": 0,
"total": 1
},
"success": true
}
docker_stats
Get containers resource usage statistics.
Internal API
SYNO.Docker.Container
Returns
dict[str, object]
A dictionary containing the resource usage statistics of the containers.
Example return
Click to expand
{
"data" : {
"ee220111cff2d2e7b9d764a4b781f9e23faa3cd7f3048d315aa6c95d48f0a1e4" : {
"blkio_stats" : {
"io_merged_recursive" : [],
"io_queue_recursive" : [],
"io_service_bytes_recursive" : [],
"io_service_time_recursive" : [],
"io_serviced_recursive" : [],
"io_time_recursive" : [],
"io_wait_time_recursive" : [],
"sectors_recursive" : []
},
"cpu_stats" : {
"cpu_usage" : {
"percpu_usage" : [ 286394951, 245078386, 304613157, 186566695 ],
"total_usage" : 1022653189,
"usage_in_kernelmode" : 380000000,
"usage_in_usermode" : 580000000
},
"online_cpus" : 4,
"system_cpu_usage" : 990015100000000,
"throttling_data" : {
"periods" : 0,
"throttled_periods" : 0,
"throttled_time" : 0
}
},
"id" : "ee220111cff2d2e7b9d764a4b781f9e23faa3cd7f3048d315aa6c95d48f0a1e4",
"memory_stats" : {
"limit" : 4079349760,
"max_usage" : 22630400,
"stats" : {
"active_anon" : 5500928,
"active_file" : 1294336,
"cache" : 15626240,
"dirty" : 0,
"hierarchical_memory_limit" : 9223372036854771712,
"hierarchical_memsw_limit" : 9223372036854771712,
"inactive_anon" : 0,
"inactive_file" : 14331904,
"mapped_file" : 11005952,
"pgfault" : 43383,
"pgmajfault" : 6,
"pgpgin" : 33405,
"pgpgout" : 28247,
"rss" : 5500928,
"rss_huge" : 0,
"total_active_anon" : 5500928,
"total_active_file" : 1294336,
"total_cache" : 15626240,
"total_dirty" : 0,
"total_inactive_anon" : 0,
"total_inactive_file" : 14331904,
"total_mapped_file" : 11005952,
"total_pgfault" : 43383,
"total_pgmajfault" : 6,
"total_pgpgin" : 33405,
"total_pgpgout" : 28247,
"total_rss" : 5500928,
"total_rss_huge" : 0,
"total_unevictable" : 0,
"total_writeback" : 0,
"unevictable" : 0,
"writeback" : 0
},
"usage" : 21127168
},
"name" : "/glance",
"networks" : {
"eth0" : {
"rx_bytes" : 876,
"rx_dropped" : 0,
"rx_errors" : 0,
"rx_packets" : 10,
"tx_bytes" : 0,
"tx_dropped" : 0,
"tx_errors" : 0,
"tx_packets" : 0
}
},
"num_procs" : 0,
"pids_stats" : {},
"precpu_stats" : {
"cpu_usage" : {
"total_usage" : 0,
"usage_in_kernelmode" : 0,
"usage_in_usermode" : 0
},
"throttling_data" : {
"periods" : 0,
"throttled_periods" : 0,
"throttled_time" : 0
}
},
"preread" : "0001-01-01T00:00:00Z",
"read" : "2025-06-15T14:11:00.431111646Z",
"storage_stats" : {}
}
},
"httpd_restart" : false,
"success" : true
}
get_container
Get detailed information about a single container.
Internal API
SYNO.Docker.Container
Parameters
name str
The name of the container.
Returns
dict[str, object]
Detailed container inspect data (Config, HostConfig, State, etc.).
restart_container
Restart a container by name.
Internal API
SYNO.Docker.Container
Parameters
container str
The name of the container to restart.
Returns
dict[str, object]
Result of the restart operation.
delete_container
Delete a container.
Internal API
SYNO.Docker.Container
Parameters
name str
The name of the container to delete.
force bool
Force-remove a running container. Defaults to False.
Returns
dict[str, object]
Result of the delete operation.
create_container
Create a new container from a profile definition.
Internal API
SYNO.Docker.Container
Parameters
profile dict
A container profile dictionary containing image, name, port
bindings, volume mounts, environment variables, etc.
Matches the JSON format produced by export_container_settings.
Returns
dict[str, object]
Result of the creation, including the new container name.
signal_container
Send a signal to a running container.
Internal API
SYNO.Docker.Container
Parameters
name str
The name of the container.
signal int
Unix signal number to send. Defaults to 15 (SIGTERM).
Returns
dict[str, object]
Result of the signal operation.
get_pkg_profile
Get the profile of a package-managed container.
Package-managed containers are created by Synology packages
(e.g. Surveillance Station, MailPlus) rather than by users directly.
Internal API
SYNO.Docker.Container.PkgProfile
Parameters
name str
The name of the package-managed container.
Returns
dict[str, object]
The package profile definition for the container.
list_pkg_profiles
List all package-managed container profiles.
Internal API
SYNO.Docker.Container.PkgProfile
Returns
dict[str, object]
A list of all package-managed container profiles.
get_container_profile
Get the full profile/configuration of a container.
Internal API
SYNO.Docker.Container.Profile
Parameters
name str
The name of the container.
Returns
dict[str, object]
The full container profile (image, ports, volumes, env, etc.).
import_container_profile
Import / apply a profile to a container.
Internal API
SYNO.Docker.Container.Profile
Parameters
name str
The name of the container to update.
profile dict
The profile dictionary to apply.
Returns
dict[str, object]
Result of the import operation.
pull_image
Pull a Docker image from the active registry.
Internal API
SYNO.Docker.Image
Parameters
repository str
The repository name (e.g. "nginx", "grafana/grafana").
tag str
The image tag to pull. Defaults to "latest".
Returns
dict[str, object]
Result of the pull operation.
delete_image
Delete a local Docker image.
Internal API
SYNO.Docker.Image
Parameters
name str
The repository name (e.g. "nginx").
tag str
The image tag to delete. Defaults to "latest".
Returns
dict[str, object]
Result of the delete operation.
export_image
Export a Docker image to a tar archive on the NAS.
Internal API
SYNO.Docker.Image
Parameters
name str
The repository name.
tag str
The image tag. Defaults to "latest".
path str
Destination path on the NAS. Defaults to "/docker".
Returns
dict[str, object]
Result of the export operation.
import_image
Import a Docker image from a tar archive on the NAS.
Internal API
SYNO.Docker.Image
Parameters
path str
Path to the image archive on the NAS filesystem
(e.g. "/docker/nginx_latest.tar").
Returns
dict[str, object]
Result of the import operation.
get_image
Get detailed information about a local Docker image.
Internal API
SYNO.Docker.Image
Parameters
name str
The repository name.
tag str
The image tag. Defaults to "latest".
Returns
dict[str, object]
Detailed image metadata.
create_registry
Add a new Docker registry.
Internal API
SYNO.Docker.Registry
Parameters
name str
Display name for the registry.
url str
Registry URL (e.g. "https://ghcr.io").
username str
Authentication username.
password str
Authentication password.
enable_trust_ssc bool
Trust self-signed certificates. Defaults to True.
Returns
dict[str, object]
Result of the create operation.
set_registry
Update an existing Docker registry configuration.
Internal API
SYNO.Docker.Registry
Parameters
name str
Display name of the registry to update.
url str
Registry URL.
username str
Authentication username.
password str
Authentication password.
enable_trust_ssc bool
Trust self-signed certificates. Defaults to True.
Returns
dict[str, object]
Result of the update operation.
delete_registry
Remove a Docker registry.
Internal API
SYNO.Docker.Registry
Parameters
name str
The display name of the registry to remove.
Returns
dict[str, object]
Result of the delete operation.
set_using_registry
Set the active (default) Docker registry.
Internal API
SYNO.Docker.Registry
Parameters
name str
The display name of the registry to make active.
Returns
dict[str, object]
Result of the operation.
get_image_tags
List available tags for an image in the registry.
Uses v2 of the Registry API for paginated tag listing.
Internal API
SYNO.Docker.Registry
Parameters
repository str
The image repository name (e.g. "nginx").
offset int
Pagination offset. Defaults to 0.
limit int
Maximum tags to return. Defaults to 50.
Returns
dict[str, object]
A dictionary containing the list of available tags.
create_network
Create a new Docker network.
Internal API
SYNO.Docker.Network
Parameters
name str
Name of the network.
driver str
Network driver. Defaults to "bridge".
subnet str
Subnet in CIDR notation (e.g. "172.28.0.0/16").
gateway str
Gateway IP address.
ip_range str
Allocatable IP range in CIDR notation.
enable_ipv6 bool
Enable IPv6 on the network. Defaults to False.
Returns
dict[str, object]
Result of the creation, including the new network ID.
delete_network
Delete a Docker network.
Internal API
SYNO.Docker.Network
Parameters
name str
The name of the network to delete.
Returns
dict[str, object]
Result of the delete operation.
get_network
Get detailed information about a Docker network.
Internal API
SYNO.Docker.Network
Parameters
name str
The name of the network.
Returns
dict[str, object]
Network details including driver, subnet, containers, etc.
create_project
Create a new Docker Compose project.
Internal API
SYNO.Docker.Project
Parameters
name str
Project name.
share_path str
Shared-folder path where the compose file lives
(e.g. "/docker/myproject").
content str
The docker-compose YAML content as a string.
enable_service_portal bool
Enable the DSM reverse-proxy portal. Defaults to False.
service_portal_name str
Portal display name.
service_portal_port int
Portal target port.
service_portal_protocol str
Portal protocol. Defaults to "http".
Returns
dict[str, object]
Result including the new project ID.
update_project
Update an existing Docker Compose project.
Internal API
SYNO.Docker.Project
Parameters
project_id str
The UUID of the project.
content str
Updated docker-compose YAML content.
enable_service_portal bool
Update the portal setting.
service_portal_name str
Update portal name.
service_portal_port int
Update portal port.
service_portal_protocol str
Update portal protocol.
Returns
dict[str, object]
Result of the update operation.
delete_project
Delete a Docker Compose project.
Internal API
SYNO.Docker.Project
Parameters
project_id str
The UUID of the project.
preserve_content bool
Keep the compose file on disk. Defaults to False.
Returns
dict[str, object]
Result of the delete operation.
start_project
Start (docker compose up) a project.
Internal API
SYNO.Docker.Project
Parameters
project_id str
The UUID of the project.
Returns
dict[str, object]
Result of the start operation.
stop_project
Stop (docker compose down) a project.
Internal API
SYNO.Docker.Project
Parameters
project_id str
The UUID of the project.
Returns
dict[str, object]
Result of the stop operation.
build_project
Build (docker compose build) images for a project.
Internal API
SYNO.Docker.Project
Parameters
project_id str
The UUID of the project.
Returns
dict[str, object]
Result of the build operation.
get_docker_logs
Get Docker daemon-level / global logs.
These are logs from the Docker engine itself, not from individual
containers. Use get_logs() for per-container logs.
Internal API
SYNO.Docker.Log
Parameters
offset int
Pagination offset. Defaults to 0.
limit int
Maximum number of log entries to return. Defaults to 50.
sort_dir str
Sort direction ("ASC" or "DESC"). Defaults to "DESC".
keyword str
Keyword filter.
level str
Log level filter (e.g. "error", "warn").
Returns
dict[str, object]
Docker daemon log entries.
get_migrate_status
Get the migration status of Docker containers / configuration.
Checks whether containers require migration (e.g. after a DSM or
Docker package upgrade).
Internal API
SYNO.Docker.Migrate
Returns
dict[str, object]
Current migration status.
start_migration
Start the Docker migration process.
Triggers migration of containers that require updating after a
DSM or Docker package upgrade.
Internal API
SYNO.Docker.Migrate
Returns
dict[str, object]
Result of the migration start.
get_docker_utils_info
Get Docker utility information.
Returns general Docker engine information such as version, storage
driver, volumes path, and capability flags.
Internal API
SYNO.Docker.Utils
Returns
dict[str, object]
Docker engine utility information.
docker_prune
Prune unused Docker resources.
Removes unused containers, networks, images, and build cache
(equivalent to docker system prune).
Internal API
SYNO.Docker.Utils
Returns
dict[str, object]
Result of the prune operation, including space reclaimed.
get_docker_version
Get Docker engine version information.
Internal API
SYNO.Docker.Utils
Returns
dict[str, object]
Docker version details (version, API version, go version, etc.).