Docker untuk Developer — Container, Image, dan Dockerfile dari Nol
Container itu bukan VM. Pelajari konsep dasar Docker: image, container, Dockerfile, dan workflow developer sehari-hari.
Docker adalah platform containerization yang bikin aplikasi kamu jalan konsisten di mana aja — laptop, server temen, atau production. Bedanya sama VM: container pake kernel host yang sama, jadi lebih ringan, startup lebih cepet, dan resource-efficient.
Image vs ContainerImage itu blueprint — static snapshot dari aplikasi + dependencies-nya. Container itu instance hidup yang jalan dari image.
# Lihat image yang adadocker images
# Jalanin container dari image nginx
docker run -d -p 8080:80 --name my-nginx nginx
# Lihat container yang jalan
docker psDockerfile 101
Dockerfile adalah resep buat nge-build image. Contoh simpel buat Node.js app:
FROM node:20-alpineWORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
Build: docker build -t my-app:latest . && docker run -p 3000:3000 my-app
Docker ComposeBuat multi-service apps (API + database + cache), Docker Compose bikin semuanya jadi definisi YAML:
version: '3.8'services:
app:
build: .
ports: ['3000:3000']
depends_on: [db]
db:
image: postgres:16-alpine
environment:
POSTGRES_DB: myapp
POSTGRES_PASSWORD: secretVolume & Persistence
Container ephemeral — datanya ilang pas mati. Makanya perlu volume:
docker volume create my-datadocker run -v my-data:/app/data my-appBest Practices
