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-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:
gcloud compute images list --project google-containers
You can launch a new instance running container-agent
. It will try to read the manifest from google-container-manifest
metadata on startup:
gcloud compute instances create my-container-vm \
--image projects/google-containers/global/images/container-vm-v20140522 \
--metadata-from-file google-container-manifest=/path/to/containers.yaml \
--zone us-central1-a \
--machine-type f1-micro
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
localhost
and 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: 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