# Docker CLI

# Quick Commands

### Show running container

```bash
docker ps
```

### Run new container

(Also pulls the corresponding image)

```
docker run -d -t -p <portondockerhost>:<portinsidedockercontainer> --name <containername> <containerimagename>:<containerimageversion>
```

#### Docker arguments

<table id="bkmrk-argument-meaning-imp" style="border-collapse:collapse;width:100%;"><colgroup><col style="width:24.9691%;"></col><col style="width:24.9691%;"></col><col style="width:24.9691%;"></col><col style="width:24.9691%;"></col></colgroup><tbody><tr><td>**Argument**</td><td>**Meaning**</td><td>**Impact**</td><td>**Example**</td></tr><tr><td>-i

</td><td>interactive</td><td>Returns output directly to prompt from Docker

</td><td>docker run -i hello-world</td></tr><tr><td>-d

</td><td>detached</td><td>The container is executed in the background

</td><td>docker run -d hello-world</td></tr><tr><td>-p

</td><td>port</td><td>Can pass a port from the host to container (hostport:containerport)

</td><td>docker run -p 80:80 hello-world</td></tr><tr><td>-v

</td><td>volume mapping</td><td>Can mount an external directory

</td><td>docker run -v /opt/datadir:/var/lib/mysql hello-world</td></tr><tr><td>-e

</td><td>environment variable</td><td>This dash can be used to pass variables to the container</td><td>docker run -e NEW=1 hello-world</td></tr></tbody></table>

### Download specific container image

```bash
docker pull <imagenamefromdockerhub>:<imageversion>
```

### Power options for container

#### Stop container

```bash
docker stop <containername/containerid>
```

#### Start container

```bash
docker start <containername/containerid>
```

#### Restart Container

```bash
docker restart <containername/containerid>
```

### Show statistics

```bash
docker stats
```

### Delete all stopped container

```powershell
docker system prune
```

### Show container details

```bash
docker inspect <containername/containerid>
```

#### Return specific ip address of container

```bash
docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <containername/containerid>
```

### Show container logs

```
docker logs <containername/containerid>
```

#### Return logs live to console

```bash
docker logs --follow <containername/containerid>
```

### Update container restart behavior

```bash
docker update --restart unless-stopped <containername/containerid>
```