Awesome
Triton Docker CLI helper
NOTE: You almost certainly should not use this repo anymore.
Set up docker
to use Triton without using the script in this repo
With modern versions of docker
and Triton the script in this repo is no longer
necessary. Before you begin, make sure you have installed and set up the
triton
cli.
First, generate your client certificate.
triton profile docker-setup
Once that's done, in any shell you want to use docker
with Triton, run the
following. Most people place this in their shell rc file (.bashrc
, .zshrc
,
etc.).
eval "$(triton env -d)"
Once this is done, just use docker
as you normally would.
See the node-triton
documentation for additional details and command line
arguments available.
Information below is for historical record
This script installs known good, tested versions of the Docker (now Moby) and Docker Compose CLI tools for use with Triton.
Additionally, this script will automatically configure those tools for use with Triton when you use them, making it easy to switch between Docker on your laptop and Docker on Triton.
Compatibility and requirements
This is designed and tested for Linux and MacOS X.
This code also requires the Triton CLI tools and a Triton account on either Triton public cloud (Joyent public cloud) or in a private cloud powered by Triton.
Use of this software also requires a Triton profile configured in the Triton CLI tool.
Installation
In a terminal window, run the following command:
sudo bash -c 'curl -o /usr/local/bin/triton-docker https://raw.githubusercontent.com/joyent/triton-docker-cli/master/triton-docker && chmod +x /usr/local/bin/triton-docker && ln -Fs /usr/local/bin/triton-docker /usr/local/bin/triton-compose && ln -Fs /usr/local/bin/triton-docker /usr/local/bin/triton-docker-install'
That command will copy the triton-docker
shell script from this repo, and link it as triton-compose
and triton-docker-install
.
To complete the installation, run sudo triton-docker-install
to install the platform-specific versions of the Docker (now Moby) and Docker Compose CLI tools. These versions will not replace any existing Docker or Docker Compose versions you may have installed.
Usage
Once installed, use triton-docker
and triton-compose
in place of docker
and docker-compose
when interacting with the Triton Elastic Docker Host.
Start a Docker container running Nginx container on Triton:
$ triton-docker run -d -p 80 --name webserver nginx
Executing in 'us-sw-1' (default; use `triton profile set <profile name>` to change) at 03:11:11 PM
d5cae48b0072610ecc67f6aecb3115f9fadff59b2151694a963084dad40e5d85
$
Start all the containers to run WordPress via Docker Compose on Triton:
$ triton-compose up -d
Executing in 'us-sw-1' (default; use `triton profile set <profile name>` to change) at 03:15:56 PM
Creating wp_wordpress_1
Creating wp_nginx_1
Creating wp_nfs_1
Creating wp_memcached_1
Creating wp_prometheus_1
Creating wp_mysql_1
Creating wp_consul_1
$
More about:
Triton Container Name Service helpers
This will also set some helpful environment variables for using Triton Container Name Service (CNS):
TRITON_CNS_SEARCH_DOMAIN_PUBLIC
TRITON_CNS_SEARCH_DOMAIN_PRIVATE
Those vars will be automatically set with values appropriate for use in Triton Public Cloud:
TRITON_CNS_SEARCH_DOMAIN_PRIVATE=a42e7881-89d2-459e-bc0b-e9af0bca409a.us-east-3.cns.joyent.com
TRITON_CNS_SEARCH_DOMAIN_PUBLIC=a42e7881-89d2-459e-bc0b-e9af0bca409a.us-east-3.triton.zone
Notes and cautions about CNS env vars
- The mechanism that sets these environment vars only works for Triton Public Cloud. To use Triton Docker CLI with private cloud implementations of Triton, please set the
TRITON_CNS_SEARCH_DOMAIN_PUBLIC
andTRITON_CNS_SEARCH_DOMAIN_PRIVATE
vars manually - These environment variables will be removed following the completion of CNS-164 and DOCKER-898, which will automatically set the DNS search domain to these values
- CNS-164 and DOCKER-898 will also work on private cloud implementations of Triton, solving the problem for everybody
Components
In addition to the shell script in this repo, this script will install: