Skip to main content

Docker Engine API Feature Parity

This page tracks the implementation status of Docker Engine API v1.51 endpoints in Socktainer, comparing against Apple container v0.5.0.

Status Legend

  • Implemented - Endpoint is fully functional
  • Not Implemented - Endpoint is stubbed but not yet functional
  • ⚠️ Limited/Not Applicable - Cannot be implemented due to Apple container limitations or not applicable to Socktainer's use case

Containers

EndpointStatusNotes
/containers/jsonList containers
/containers/createCreate container (#37)
/containers/{id}/jsonInspect container
/containers/{id}/top⚠️No matching capability available (#18)
/containers/{id}/logsContainer logs
/containers/{id}/changes⚠️No matching capability available (#18)
/containers/{id}/export⚠️No matching capability available (#18)
/containers/{id}/stats⚠️No matching capability available (#18)
/containers/{id}/resize⚠️No matching capability available (#18)
/containers/{id}/startStart container
/containers/{id}/stopStop container
/containers/{id}/restartRestart container (#82)
/containers/{id}/killKill container (#82)
/containers/{id}/update⚠️No matching capability available (#18)
/containers/{id}/rename⚠️No matching capability available (#18)
/containers/{id}/pause⚠️No matching capability available (#18)
/containers/{id}/unpause⚠️No matching capability available (#18)
/containers/{id}/attachAttach to container (#94)
/containers/{id}/attach/wsNot implemented, stubbed for now (#18)
/containers/{id}/waitWait for container (#82)
/containers/{id}Remove container
/containers/{id}/archive⚠️No matching capability available (#18)
/containers/prunePrune containers (#65)

Images

EndpointStatusNotes
/images/jsonList images
/buildBuild image (#101)
/build/pruneNot implemented, stubbed for now (#18)
/images/createPull/import image (#12)
/images/{name}/jsonInspect image
/images/{name}/history⚠️No matching capability available (#18), could be handled entirely within socktainer
/images/{name}/pushNot implemented, stubbed for now (#18)
/images/{name}/tagNot implemented, stubbed for now (#18)
/images/{name}Remove image
/images/search⚠️No matching capability available (#18)
/images/pruneNot implemented, stubbed for now (#18)
/images/{name}/getNot implemented, stubbed for now (#18)
/images/getNot implemented, stubbed for now (#18)
/images/loadNot implemented, stubbed for now (#18)

Exec

EndpointStatusNotes
/containers/{id}/execCreate exec instance
/exec/{id}/startStart exec instance
/exec/{id}/resizeResize exec TTY
/exec/{id}/jsonInspect exec instance

Volumes

EndpointStatusNotes
/volumesList volumes (#58)
/volumes/createCreate volume (#58)
/volumes/{name}Inspect/remove volume (#58)
/volumes/prunePrune volumes (#58)

Networks

EndpointStatusNotes
/networksList networks (#44)
/networks/{id}Inspect/remove network (#44, #52)
/networks/createCreate network (#52)
/networks/{id}/connect⚠️No matching capability available (#18)
/networks/{id}/disconnect⚠️No matching capability available (#18)
/networks/prunePrune networks (#52)

System

EndpointStatusNotes
/authAuthentication (#105)
/infoSystem information (#28)
/versionVersion information (#28)
/_pingPing endpoint
/eventsSystem events
/system/df⚠️No matching capability available (#18)
/commit⚠️No matching capability available (#18)
/distribution/{name}/jsonNot implemented, stubbed for now (#18)
/session⚠️No matching capability available (#18)

Plugins

info

Apple container supports a plugin system. These endpoints should be revisited once the project matures.

EndpointStatusNotes
/plugins⚠️Apple container supports plugins, revisit in future (#18)
/plugins/privileges⚠️Apple container supports plugins, revisit in future (#18)
/plugins/pull⚠️Apple container supports plugins, revisit in future (#18)
/plugins/{name}/json⚠️Apple container supports plugins, revisit in future (#18)
/plugins/{name}⚠️Apple container supports plugins, revisit in future (#18)
/plugins/{name}/enable⚠️Apple container supports plugins, revisit in future (#18)
/plugins/{name}/disable⚠️Apple container supports plugins, revisit in future (#18)
/plugins/{name}/upgrade⚠️Apple container supports plugins, revisit in future (#18)
/plugins/create⚠️Apple container supports plugins, revisit in future (#18)
/plugins/{name}/push⚠️Apple container supports plugins, revisit in future (#18)
/plugins/{name}/set⚠️Apple container supports plugins, revisit in future (#18)

Swarm (Not Applicable)

warning

Swarm-related endpoints are not applicable to Socktainer and should return appropriate errors to users.

EndpointStatusNotes
/nodes⚠️Not applicable, part of swarm (#18)
/nodes/{id}⚠️Not applicable, part of swarm (#18)
/nodes/{id}/update⚠️Not applicable, part of swarm (#18)
/swarm⚠️Not applicable (#17)
/swarm/init⚠️Not applicable (#17)
/swarm/join⚠️Not applicable (#17)
/swarm/leave⚠️Not applicable (#17)
/swarm/update⚠️Not applicable (#17)
/swarm/unlockkey⚠️Not applicable (#17)
/swarm/unlock⚠️Not applicable (#17)
/services⚠️Not applicable, part of swarm (#18)
/services/create⚠️Not applicable, part of swarm (#18)
/services/{id}⚠️Not applicable, part of swarm (#18)
/services/{id}/update⚠️Not applicable, part of swarm (#18)
/services/{id}/logs⚠️Not applicable, part of swarm (#18)
/tasks⚠️Not applicable, part of swarm (#18)
/tasks/{id}⚠️Not applicable, part of swarm (#18)
/tasks/{id}/logs⚠️Not applicable, part of swarm (#18)
/secrets⚠️Not applicable, part of swarm (#18)
/secrets/create⚠️Not applicable, part of swarm (#18)
/secrets/{id}⚠️Not applicable, part of swarm (#18)
/secrets/{id}/update⚠️Not applicable, part of swarm (#18)
/configs⚠️Not applicable, part of swarm (#18)
/configs/create⚠️Not applicable, part of swarm (#18)
/configs/{id}⚠️Not applicable, part of swarm (#18)
/configs/{id}/update⚠️Not applicable, part of swarm (#18)

Contributing to API Coverage

This feature parity list is subject to change as both Socktainer and Apple's container framework mature. If you're interested in implementing any of the missing endpoints:

  1. Check if there's an existing GitHub issue for the endpoint
  2. Review the Apple container framework capabilities
  3. File a new issue before starting implementation to coordinate with other contributors