Run update.sh

This commit is contained in:
Docker Library Bot 2015-12-07 13:01:28 -08:00
parent d88258b25c
commit 7f7c4893ae
2 changed files with 73 additions and 17 deletions

View File

@ -1,13 +1,13 @@
# Supported tags and respective `Dockerfile` links # Supported tags and respective `Dockerfile` links
- [`3.10.0`, `3.10` (*3.10.0/Dockerfile*)](https://github.com/mono/docker/blob/adc7a3ec47f7d590f75a4dec0203a2103daf8db0/3.10.0/Dockerfile) - [`3.10.0`, `3.10` (*3.10.0/Dockerfile*)](https://github.com/mono/docker/blob/810b0cd85839b4b62706935a804fee63d2eb3285/3.10.0/Dockerfile)
- [`3.10.0-onbuild`, `3.10-onbuild` (*3.10.0/onbuild/Dockerfile*)](https://github.com/mono/docker/blob/66226b17125b72685c2022e4fecaee2716b0fb3a/3.10.0/onbuild/Dockerfile) - [`3.10.0-onbuild`, `3.10-onbuild` (*3.10.0/onbuild/Dockerfile*)](https://github.com/mono/docker/blob/810b0cd85839b4b62706935a804fee63d2eb3285/3.10.0/onbuild/Dockerfile)
- [`3.12.1`, `3.12.0`, `3.12`, `3` (*3.12.1/Dockerfile*)](https://github.com/mono/docker/blob/39c80bc024a4797c119c895fda70024fbc14d5b9/3.12.1/Dockerfile) - [`3.12.1`, `3.12.0`, `3.12`, `3` (*3.12.1/Dockerfile*)](https://github.com/mono/docker/blob/810b0cd85839b4b62706935a804fee63d2eb3285/3.12.1/Dockerfile)
- [`3.12.1-onbuild`, `3.12.0-onbuild`, `3.12-onbuild`, `3-onbuild` (*3.12.1/onbuild/Dockerfile*)](https://github.com/mono/docker/blob/39c80bc024a4797c119c895fda70024fbc14d5b9/3.12.1/onbuild/Dockerfile) - [`3.12.1-onbuild`, `3.12.0-onbuild`, `3.12-onbuild`, `3-onbuild` (*3.12.1/onbuild/Dockerfile*)](https://github.com/mono/docker/blob/810b0cd85839b4b62706935a804fee63d2eb3285/3.12.1/onbuild/Dockerfile)
- [`3.8.0`, `3.8` (*3.8.0/Dockerfile*)](https://github.com/mono/docker/blob/adc7a3ec47f7d590f75a4dec0203a2103daf8db0/3.8.0/Dockerfile) - [`3.8.0`, `3.8` (*3.8.0/Dockerfile*)](https://github.com/mono/docker/blob/810b0cd85839b4b62706935a804fee63d2eb3285/3.8.0/Dockerfile)
- [`3.8.0-onbuild`, `3.8-onbuild` (*3.8.0/onbuild/Dockerfile*)](https://github.com/mono/docker/blob/66226b17125b72685c2022e4fecaee2716b0fb3a/3.8.0/onbuild/Dockerfile) - [`3.8.0-onbuild`, `3.8-onbuild` (*3.8.0/onbuild/Dockerfile*)](https://github.com/mono/docker/blob/810b0cd85839b4b62706935a804fee63d2eb3285/3.8.0/onbuild/Dockerfile)
- [`4.0.5.1`, `4.0.5`, `4.0` (*4.0.5.1/Dockerfile*)](https://github.com/mono/docker/blob/39c80bc024a4797c119c895fda70024fbc14d5b9/4.0.5.1/Dockerfile) - [`4.0.5.1`, `4.0.5`, `4.0` (*4.0.5.1/Dockerfile*)](https://github.com/mono/docker/blob/810b0cd85839b4b62706935a804fee63d2eb3285/4.0.5.1/Dockerfile)
- [`4.0.5.1-onbuild`, `4.0.5-onbuild`, `4.0-onbuild` (*4.0.5.1/onbuild/Dockerfile*)](https://github.com/mono/docker/blob/39c80bc024a4797c119c895fda70024fbc14d5b9/4.0.5.1/onbuild/Dockerfile) - [`4.0.5.1-onbuild`, `4.0.5-onbuild`, `4.0-onbuild` (*4.0.5.1/onbuild/Dockerfile*)](https://github.com/mono/docker/blob/810b0cd85839b4b62706935a804fee63d2eb3285/4.0.5.1/onbuild/Dockerfile)
- [`4.2.1.102`, `4.2.1`, `4.2`, `4`, `latest` (*4.2.1.102/Dockerfile*)](https://github.com/mono/docker/blob/39c80bc024a4797c119c895fda70024fbc14d5b9/4.2.1.102/Dockerfile) - [`4.2.1.102`, `4.2.1`, `4.2`, `4`, `latest` (*4.2.1.102/Dockerfile*)](https://github.com/mono/docker/blob/39c80bc024a4797c119c895fda70024fbc14d5b9/4.2.1.102/Dockerfile)
- [`4.2.1.102-onbuild`, `4.2.1-onbuild`, `4.2-onbuild`, `4-onbuild`, `onbuild` (*4.2.1.102/onbuild/Dockerfile*)](https://github.com/mono/docker/blob/39c80bc024a4797c119c895fda70024fbc14d5b9/4.2.1.102/onbuild/Dockerfile) - [`4.2.1.102-onbuild`, `4.2.1-onbuild`, `4.2-onbuild`, `4-onbuild`, `onbuild` (*4.2.1.102/onbuild/Dockerfile*)](https://github.com/mono/docker/blob/39c80bc024a4797c119c895fda70024fbc14d5b9/4.2.1.102/onbuild/Dockerfile)

View File

@ -76,7 +76,6 @@ The ROS runtime "graph" is a peer-to-peer network of processes (potentially dist
## Deployment example ## Deployment example
**NOTE:** This requires the experimental version of Docker for future networking features.
If we want our all ROS nodes to easily talk to each other, we'll can use a virtual network to connect the separate containers. In this short example, we'll create a virtual network, spin up a new container running `roscore` advertised as the `master` service on the new network, then spawn a message publisher and subscriber process as services on the same network. If we want our all ROS nodes to easily talk to each other, we'll can use a virtual network to connect the separate containers. In this short example, we'll create a virtual network, spin up a new container running `roscore` advertised as the `master` service on the new network, then spawn a message publisher and subscriber process as services on the same network.
### Build image ### Build image
@ -111,8 +110,8 @@ $ docker build --tag ros:ros-tutorials .
> To create a container for the ROS master and advertise it's service: > To create a container for the ROS master and advertise it's service:
```console ```console
$ docker run -it --rm\ $ docker run -it --rm \
--publish-service=master.foo \ --net foo \
--name master \ --name master \
ros:ros-tutorials \ ros:ros-tutorials \
roscore roscore
@ -121,11 +120,11 @@ $ docker run -it --rm\
> Now you can see that master is running and is ready manage our other ROS nodes. To add our `talker` node, we'll need to point the relevant environment variable to the master service: > Now you can see that master is running and is ready manage our other ROS nodes. To add our `talker` node, we'll need to point the relevant environment variable to the master service:
```console ```console
$ docker run -it --rm\ $ docker run -it --rm \
--publish-service=talker.foo \ --net foo \
--name talker \
--env ROS_HOSTNAME=talker \ --env ROS_HOSTNAME=talker \
--env ROS_MASTER_URI=http://master:11311 \ --env ROS_MASTER_URI=http://master:11311 \
--name talker \
ros:ros-tutorials \ ros:ros-tutorials \
rosrun roscpp_tutorials talker rosrun roscpp_tutorials talker
``` ```
@ -133,11 +132,11 @@ $ docker run -it --rm\
> Then in another terminal, run the `listener` node similarly: > Then in another terminal, run the `listener` node similarly:
```console ```console
$ docker run -it --rm\ $ docker run -it --rm \
--publish-service=listener.foo \ --net foo \
--name listener \
--env ROS_HOSTNAME=listener \ --env ROS_HOSTNAME=listener \
--env ROS_MASTER_URI=http://master:11311 \ --env ROS_MASTER_URI=http://master:11311 \
--name listener \
ros:ros-tutorials \ ros:ros-tutorials \
rosrun roscpp_tutorials listener rosrun roscpp_tutorials listener
``` ```
@ -189,6 +188,63 @@ $ docker stop master talker listener
$ docker rm master talker listener $ docker rm master talker listener
``` ```
### Compose
Now that you have an appreciation for bootstrapping a distributed ROS example manually, lets try and automate it using [`docker-compose`](https://docs.docker.com/compose/)\.
> Start by making a folder named `rostutorials` and moving the Dockerfile we used earlier inside this directory. Then create a yaml file named `docker-compose.yml` in the same directory and paste the following inside:
```yaml
master:
build: .
container_name: master
command:
- roscore
talker:
build: .
container_name: talker
environment:
- "ROS_HOSTNAME=talker"
- "ROS_MASTER_URI=http://master:11311"
command: rosrun roscpp_tutorials talker
listener:
build: .
container_name: listener
environment:
- "ROS_HOSTNAME=listener"
- "ROS_MASTER_URI=http://master:11311"
command: rosrun roscpp_tutorials listener
```
> Now from inside the same folder, use docker-copose to launch our ROS nodes and specify that they coexist on their own network:
```console
$ docker-compose --x-networking up -d
```
> Notice that a new network named `rostutorials` has now been created, you can inspect it further with:
```console
$ docker network inspect rostutorials
```
> We can monitor the logged output of each service, such as the listener node like so:
```console
$ docker-compose logs listener
```
> Finally, we can stop and remove all the relevant containers using docker-copose from the same directory:
```console
$ docker-compose stop
$ docker-compose rm
```
> Note: the auto-generated network, `rostutorials`, will persist over the life of the docker engine or until you explicitly remove it using [`docker network rm`](https://docs.docker.com/engine/reference/commandline/network_rm/)\.
# More Resources # More Resources
[ROS.org](http://www.ros.org/): Main ROS website [ROS.org](http://www.ros.org/): Main ROS website