The goal of the project is to provide as simple as possible interface for cluster deployments.
- Install docker
curl -fsSL https://get.docker.com -o get-docker.sh && chmod +x get-docker.sh && ./get-docker.sh
- Create swarm cluster
docker swarm init
- Create
caddy
swarm overlay network
docker network create -d overlay --attachable caddy
- Create secret
root_token
containing root token
printf "dev" | docker secret create root_token -
- Create config
.env.api_host
containing your domain
printf "API_HOST=$(curl -4 ifconfig.co).nip.io\n" > .env.api_host
-
Copy .env.example to .env and set S3 credentials
-
Run installer
docker service rm containeros-system_api containeros-system_node-setup; docker pull quay.io/containeros/installer:latest && docker pull quay.io/containeros/api:latest && docker run --env-file .env --env-file .env.api_host -it --rm -v "/var/run/docker.sock:/var/run/docker.sock" quay.io/containeros/installer:latest
- Optional: tear down
docker service rm $(docker service ls -q)
- Accepts http requests and modifies swarm mode desired cluster state
- Responds with container statuses
- Streams logs
- Works directly with docker API
- Runs only on controller nodes
- Manages users saving them in configs and secrets
- Stateless except for log streaming
- Starts router, API server, and docker registry and addon controllers
- Auth docker into registry
- Proxies requests to docker registry (thank you, capitain)
- Gets credentials and user access rights from configs and secrets
- Manage databases and other software, defined in configs by API server
- Auto-scales depending on load