---
# System prepended metadata

title: DOCKER

---

# DOCKER

### Dockerfile
Dockerfile di gunakan untuk membuat image. Misalnya kita mau membuat image untuk menjalankan aplikasi loopback yang sudah kita kerjakan sebelumnya.
```shell=
FROM node:lts-alpine
RUN apk add --no-cache bash
COPY . /app
WORKDIR /app
CMD node .
```

#### Build dockerfile & Perintah dasar
```shell=
docker build --tag app:1.0 .
docker container create --name app -p 3000:3000 app:1.0
docker container start app
docker container stop app
docker container rm app

docker logs app

docker container exec -it app /bin/sh
docker container exec -it app /bin/bash
```

### Docker compose
Docker compose di gunakan untuk membuat 1 container atau lebih dengan menggunakan config file.

#### Install redis dengan docker compose
```shell=
version: '3.5'

services:
  redis:
    container_name: redis
    image: redis:6
    command: redis-server /usr/local/etc/redis/redis.conf
    ports:
      - 6379:6379
    volumes:
      - ./config/redis.conf:/usr/local/etc/redis/redis.conf
```

#### Cara Up & Down
```shell=
docker-compose -f docker-compose.yml up -d
docker-compose -f docker-compose.yml down
```

### Hapus data sampah
```shell=
docker system prune -a --valumes

docker image prune
docker container prune
docker valume prune
docker network prune
```