Quick Start on Docker

Quick Start instructions to install and configure Istio in a Docker Compose setup.

Prerequisites

Installation steps

  1. Go to the Istio release page to download the installation file corresponding to your OS. If you are using a macOS or Linux system, you can also run the following command to download and extract the latest release automatically:

    $ curl -L https://git.io/getLatestIstio | sh -
  2. Extract the installation file and change the directory to the file location. The installation directory contains:

    • Sample applications in samples/
    • The istioctl client binary in the bin/ directory. istioctl is used for some debug and diagnostics tasks.
    • The istio.VERSION configuration file
  3. Add the istioctl client to your PATH. For example, run the following command on a macOS or Linux system:

    $ export PATH=$PWD/bin:$PATH
  4. Install kubectl using these instructions.

kubectl is used to create, read, modify, and delete Istio API resources.

  1. For Linux users, configure the DOCKER_GATEWAY environment variable

    $ export DOCKER_GATEWAY=172.28.0.1:
  2. Change directory to the root of the Istio installation directory.

  3. Bring up the Istio control plane containers:

    $ docker-compose -f install/consul/istio.yaml up -d
  4. Confirm that all docker containers are running:

    $ docker ps -a

    If the Istio Pilot container terminates, ensure that you ran the kubectl config commands below and re-run the command from the previous step.

  5. Configure kubectl to use mapped local port for the API server:

    $ kubectl config set-context istio --cluster=istio
    $ kubectl config set-cluster istio --server=http://localhost:8080
    $ kubectl config use-context istio

Deploy your application

You can now deploy your own application or one of the sample applications provided with the installation like Bookinfo.

Since there is no concept of pods in a Docker setup, the Istio sidecar runs in the same container as the application. We will use Registrator to automatically register instances of services in the Consul service registry.

The application must use HTTP/1.1 or HTTP/2.0 protocol for all its HTTP traffic because HTTP/1.0 is not supported.

$ docker-compose -f <your-app-spec>.yaml up -d

Uninstalling

Uninstall Istio core components by removing the docker containers:

$ docker-compose -f install/consul/istio.yaml down

See also

Instructions for installing the Istio control plane in a Consul-based environment, with or without Nomad.