container-agent is a small python agent designed to manage a group of Docker containers according to a YAML manifest.
virtualenv env
env/bin/pip install git+http://github.com/GoogleCloudPlatform/container-vm-agent.git
env/bin/container-agent <path/to/manifest.yaml>
Container-optimized images including container-agent are available for Google Compute Engine.
You can list available versions using:
gcutil --project=google-containers listimages
You can launch a new instance running container-agent. It will try to read the manifest from google-container-manifest metadata on startup:
gcutil addinstance my-container-vm \
--image=projects/google-containers/global/images/container-vm-v20140522 \
--metadata_from_file=google-container-manifest:containers.yaml
Read more about Containers on the Google Cloud Platform
The agent setup the container group defined by the manifest to share:
- Network Namespaces
- Volumes
This creates a runtime environment where:
- Containers can connect to a service running in other containers of the same group using
localhostand a fixed port. - Containers of the same group can't run services on the same ports.
- Containers of the same group can mount shared volumes defined in the manifest.
A simple netcat server.
version: v1beta1
containers:
- name: simple-echo
image: google/busybox
command: ['nc', '-p', '8080', '-l', '-l', '-e', 'echo', 'hello world!']
ports:
- name: nc-echo
hostPort: 8080
containerPort: 8080
Read the Manifest format specification, and browse examples
- Give early feedback and talk with the community (including the developer team) on the mailing-list
- Ask development and best practices questions on Stack Overflow
- Chat with the community on IRC
- Submit Issues & Feature requests to the GitHub issue tracker
- Fork the repository and start contributing