# Basic usage

First of all, [install Docker](https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-using-the-convenience-script) on the host machine.

The easiest way to use the dockerized Meterian Client is via the script [meterian-docker](https://github.com/MeterianHQ/meterian-scanner-docker/blob/master/scripts). It accepts all [the standard parameters](https://docs.meterian.io/the-client/command-line-parameters) exactly in the same way, but it cannot be used in interactive mode, therefore you will need to provide it with [a valid token](https://www.meterian.com/account/#tokens) using the environment variable `METERIAN_API_TOKEN`. We suggest you populate such variable in your startup script.

Assuming you put the script in your path, just **move in the folder of your project** and type:

```
    meterian-docker [Meterian CLI Options]
```

Alternatively you can set the environment variable `METERIAN_WORKDIR` with the path to your project folder and run the convenience script:

```
    export METERIAN_WORKDIR=/project-folder
    meterian-docker
```

Everything will work exactly like a normal invocation of the client. Please note that, by default, the script binds into the container the standard library cache folders used by the package managers (see the table below for the ones that we bind), so that the execution is as fast as it was running on your machine. If you really want you can avoid this by adding `--unbound` to your command line arguments.

| Package Manager | Folder                          |
| --------------- | ------------------------------- |
| \*              | <p>~~/.cache<br>~~/.local</p>   |
| maven           | \~/.m2                          |
| dotnet          | <p>~~/.dotnet<br>~~/.nuget</p>  |
| ruby            | $(gem environment gemdir)/cache |
| node            | /usr/lib/node\_modules          |
| gradle          | \~/.gradle                      |
| sbt             | <p>~~/.sbt<br>~~/.ivy2</p>      |

An additional option to note when using the [meterian-docker](https://github.com/MeterianHQ/meterian-scanner-docker/blob/master/scripts) script is `--image:` .&#x20;

By default the scripts uses the `latest` tag, but providing this option instructs it to use a [given tag](https://hub.docker.com/repository/docker/meterian/cli/tags) of the `meterian/cli` image.

```
    meterian-docker --image:latest-python
```

The above example will cause the script to use the `meterian/cli:latest-python` image: we also provide [platform-specific images](https://hub.docker.com/r/meterian/cli/tags) should you not wish to use the full version to save bandwidth or space, as the "generic" image ("latest") contains all the tooling supported.
