dockeros package from dockeros repo


Package Summary

Tags No category tags.
Version 1.1.0
License BSD
Build type CATKIN

Repository Summary

Checkout URI
VCS Type git
VCS Version master
Last Updated 2023-09-28
CI status No Continuous Integration
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Simply running ros nodes in docker containers on remote robots.

Additional Links

No additional links.


  • Christian Henkel


No additional authors.

Sorry, this is no longer maintained. But there are many great alternatives: - rocker - docker-ros - useful-defaults


Simply running ROS nodes in docker containers on robots.

PRs Welcome t: tavis_status bf: Build Status bf_doc: Build Status cc: Maintainability


This is supposed to deliver tools to use the methods of edge computing for ROS enabled robots. These methods include fast and seamless deployment of software to edge devices (i.e. robots, and others).

The dockeros library is designed to create and update docker images for ros packages. There is a CLI to use these capabilities in your development lifecycle that makes use of these tools in a client-server structure.




Presentation at ROS Industrial Conference 2018



Podcast with Ricardo Tellez


On your PC (the Server)

The python packages required by the server can be installed via pip install -r requirements.txt. To install docker, you can use this.

Optional: Registry

Without a registry, you will need to build the images on the robot they should run on. If you want to build them in a central place (the server), you need to run a docker registry on that server: docker run -d -p 5000:5000 --name registry registry. You can also use the unsafe_registry in this repository. It will allow CORS (which is why it is called unsafe).

On the Robot (Client)

On the robot you need to have a docker deamon running with an accesible API. To install docker, you can use this. A good way to do this on systems running systemd is can be found here. We strongly recommend to use TLS for your deamons socket


usage: dockeros [-h] [-e | -i HOST:PORT] [-f DOCKERFILE] [-n]
                {build,run,stop,push} ...

Simply running ros nodes in docker containers on remote robots.

positional arguments:
                        build: Creates an image that can run roscommand
                        run: Runs an image with your_roscommand (and builds it first)
                        stop: Stops image that runs that command
                        push: Push image to predefined registry
  roscommand            Everything after the subcommand will be interpreted as the ros command to be run in your image

optional arguments:
  -h, --help            show this help message and exit
  -e, --env             use the existing docker environment (see for details)
  -i HOST:PORT, --ip HOST:PORT, --host HOST:PORT
                        set the host (robot) to deploy image to
  -f DOCKERFILE, --dockerfile DOCKERFILE
                        use a custom Dockerfile
  -n, --no-build        dont (re-)build the image before running

screencast of dockeros run


All contributions are welcome. Especially important is at the moment:


Please open issues for all problems you encounter. Please make sure, that your problem is reproducible though: Add the rosdistro, package, exact command and Dockerfile (if applicable) that you are using


Registry with http

When you get this error: {"errorDetail":{"message":"Get https://YOUR_REGISTRY:5000/v2/: http: server gave HTTP response to HTTPS client"},"error":"Get https://YOUR_REGISTRY:5000/v2/: http: server gave HTTP response to HTTPS client"} while trying to push:

Add the server to your unsafe registries in daemon.json (default at /etc/docker/daemon.json )


and restart your docker deamon.

sudo systemctl restart docker



Changelog for package dockeros

1.1.0 (2019-12-05)

  • documentation
  • also on melodic
  • Contributors: Christian Henkel, ct2034, proffessor.x

1.0.3 (2018-12-12)

  • removing rospy from CMakeLists
  • documentation
  • Contributors: Christian Henkel, ct2034

1.0.2 (2018-12-11)

  • this is almost binary
  • jou
  • refactoring
  • finding user defined Dockerfile
  • curiousity
  • now with rosdep :)
  • Contributors: ct2034

1.0.1 (2018-12-10)

  • requirements
  • best practise: Comment out what you might never nedd
  • not testing
  • test dependenc
  • Merge branch \'master\' of
  • test?
  • adding python setup breaks it
  • test
  • Merge branch \'master\' of
  • testing
  • tests
  • travis :D
  • Merge branch \'master\' of
  • docker in docker.. is this a good idea?
  • Documentation
  • dont need rosmasteruri
  • maybe you have no config
  • Merge branch \'master\' of Merging some changes
  • registry?
  • don\'t need ignore os in rosdep
  • just can stop now
  • interface with new cli (beta)
  • few comments
  • Merge branch \'master\' of
  • argparse is cool!
  • cleaning up and some comments
  • help!
  • running ros comunication
  • less presumptuous naming
  • tab completion
  • no need for debugevalprint
  • handling the temporary dockerfile correctly
  • almost working
  • testing (with nosetest)
  • new name
  • we can recognise uninstalled packages
  • uninstalled system packages
  • also allowing rosrun
  • cli
  • logging
  • other output
  • renaming
  • renaming
  • loglevel
  • list split
  • logging
  • logging
  • logerr
  • Merge branch \'master\' of
  • reqs
  • reqs
  • Merge branch \'master\' of
  • log
  • log
  • autocomplete and init function
  • rospy
  • join
  • )
  • also we can push !?
  • also we can push !?
  • commands
  • merge env-hooks and script usage
  • renaming
  • changes
  • }
  • we can not deploy (without a server-side workaround that works around some stuff from the server side
  • playing all together
  • ignoring the client config file
  • hostnam
  • client-server-stuff 4 reeelz
  • the actual metrics
  • a unicorn with a horn
  • whoohoo
  • split client and server
  • small tweaks in client/server
  • moving gui project
  • something good from fake ..
  • my readme
  • docker!
  • clicky
  • now reading images from devices
  • now getting architecture correctly
  • now getting (almost) all info we can get
  • now talking to the registry
  • the unsave registry
  • testing the communication to the registry
  • a registry accepting CORS requests, TODO: actual URL of GUI
  • source Dockerfile
  • Merge branch \'master\' of
  • configurable server ip,put command with mem usg, server on robot for robot info
  • modularization
  • the gui does auto updates
  • python3 and configurability
  • how to run server
  • trying to drag and drop
  • added comments
  • final server and client script
  • initial prototype with architecture working
  • whiteboard image
  • filling the width better
  • now with devices with bars and shit
  • now with correct scrolling :)
  • my react gui
  • archi
  • output
  • get back ip address and store in a mongodb database
  • remove
  • server + client + mongodb
  • first script for REST api for server client communication
  • some output
  • proper usage info
  • by being a ros package we can find ourselves
  • by being a ros package we can find ourselves
  • fully-qualified domain name
  • naming for images
  • documentation
  • rearangements
  • working with lib
  • reorganizing tests
  • big renaming efforts
  • gui discontinued
  • a gui demo
  • merging from codebeamer
  • ignoring idea
  • 1st commit, adding initial files
  • Initial commit
  • Contributors: Christian Henkel, Poulastya Mukherjee, cch, ct2034, proffessor.x

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Package Dependencies

System Dependencies

Dependant Packages

No known dependants.

Launch files

No launch files found


No message files found.


No service files found


No plugins found.

Recent questions tagged dockeros at Robotics Stack Exchange