Giter VIP home page Giter VIP logo

ambassador's Introduction

ambassador

A secure ambassador for Docker containers by Sojourn Labs. This repository contains a Dockerfile for building a Docker image that implements the ambassador pattern and wrapper scripts. This particular ambassador implementation includes automatic configuration using the Docker API and etcd. Communication is encrypted using OpenSSL. Thus, in order to use this, each host machine must have client and/or server certificates as appropriate.

Docker image

Server

To activate the server, call the ambassador image with the server argument:

docker run -t -i --rm -v /var/run/docker.sock:/var/run/docker.sock
                      -v path/to/ca/certificate:/vapr/certstore/ca.crt:ro \
                      -v path/to/server/certificate:/vapr/certstore/server.crt:ro \
                      -v path/to/server/key:/vapr/keys/server.key:ro \
                      -p p1 -p p2 -p p3 ... -p pn \
                      sojournlabs/ambassador server container_name external_ip

where container_name is the name of the container to expose and external_ip is the ip address of the host computer. p1 ... pn are arbitrary port numbers. n must be at least equal to the number of ports exposed by container.

Client

To activate the client, call the ambassador image with the client argument:

docker run -t -i --rm -v /var/run/docker.sock:/var/run/docker.sock
                      -v path/to/ca/certificate:/vapr/certstore/ca.crt:ro \
                      -v path/to/client/certificate:/vapr/certstore/client.crt:ro \
                      -v path/to/client/key:/vapr/keys/client.key:ro \
                      sojournlabs/ambassador client container_name

where container_name is the name of the container to connect to.

Wrappers

The wrappers were intended to be used with vapr but can easily be used independently. Server

To start the server, run

TLS_KEY=path/to/key ./server container_name external_ip

where container_name is the name of the container with services to be made public.

Client

To start the client, run

TLS_KEY=path/to/key ./client container_name

where container_name is the name of the container with services to be made public.

ambassador's People

Contributors

lungj avatar

Stargazers

Paul d'Aoust avatar

Watchers

James Cloos avatar  avatar

Forkers

iweave

ambassador's Issues

Encrypted coreos

In June you made a post about FDE coreos, have you made any more progress with that?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.