# docker

#### Build Image
    docker build -t <tagname> .

#### Run Image Temporarily
    sudo docker run --rm -it -p 8080:5000 --name spyglass-frontend <tagname>

#### Get Shell on Docker Container
    docker exec -it <container_id> sh

#### Start New Container in Daemon Mode
    docker run -d -p 8082:5000 --name <name> <image>

#### Rename Container
    docker rename <target> <new_name>

#### Modify Restart Policy
    docker update --restart unless-stopped <container>

#### Block outside access to docker but allow localhost
Without the `-m state` rule above the `DROP` rule, outside access is blocked, but traffic initiated from docker won't be allowed back.

    -A DOCKER-USER -m state --state RELATED,ESTABLISHED -j ACCEPT
    -A DOCKER-USER ! -s 127.0.0.1/32 -i eth0 -j DROP

#### Update a docker container that uses docker compose
    docker compose pull
    docker compose up --force-recreate --build -d
    docker image prune -f
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9