vi

Docker VPS Hosting: Container Hóa Trên VPS Offshore

Docker đã thay đổi cách chúng ta phát triển và triển khai ứng dụng. Với Docker, môi trường development và production giống nhau hoàn toàn, loại bỏ vĩnh viễn vấn đề 'chạy được trên máy tôi'. VPS offshore của AnubizHost là nơi lý tưởng để chạy Docker containers với toàn quyền root access, không bị hạn chế bởi container registry hay policy của managed hosting.

Need this done for your project?

We implement, you ship. Async, documented, done in days.

Start a Brief

Cài Đặt Docker trên VPS

Cài đặt Docker Engine từ repository chính thức:

curl -fsSL https://get.docker.com | bash
systemctl enable docker
systemctl start docker
docker --version

Cài đặt Docker Compose:

apt install -y docker-compose-plugin
docker compose version

Thêm user hiện tại vào group docker (để không cần sudo):

usermod -aG docker $USER

Test cài đặt:

docker run hello-world

Docker Compose cho Multi-Container Application

Ví dụ docker-compose.yml cho một stack web app hoàn chỉnh:

services:
  app:
    build: .
    restart: unless-stopped
    environment:
      - NODE_ENV=production
      - DATABASE_URL=postgres://user:pass@db:5432/mydb
    depends_on:
      - db
      - redis
    networks:
      - app-network

  nginx:
    image: nginx:alpine
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf:ro
      - certbot-data:/etc/letsencrypt
    depends_on:
      - app
    networks:
      - app-network

  db:
    image: postgres:16-alpine
    environment:
      POSTGRES_DB: mydb
      POSTGRES_USER: user
      POSTGRES_PASSWORD: ${DB_PASSWORD}
    volumes:
      - postgres-data:/var/lib/postgresql/data
    networks:
      - app-network

  redis:
    image: redis:7-alpine
    networks:
      - app-network

volumes:
  postgres-data:
  certbot-data:

networks:
  app-network:
docker compose up -d

Docker Volumes và Data Persistence

Data persistence là cực kỳ quan trọng trong Docker production. Sử dụng named volumes:

# Liệt kê volumes
docker volume ls

# Inspect volume
docker volume inspect postgres-data

# Backup volume
docker run --rm   -v postgres-data:/source   -v /backup:/backup   alpine tar czf /backup/db-backup-$(date +%Y%m%d).tar.gz -C /source .

Mount bind để serve static files từ host:

volumes:
  - ./public:/var/www/html/public:ro

Kiểm tra logs container:

docker compose logs -f app --tail=100

Cập Nhật và Zero-Downtime Deployment

Quy trình cập nhật application không có downtime:

# Pull image mới
docker compose pull app

# Rebuild nếu dùng custom image
docker compose build app

# Rolling update
docker compose up -d --no-deps app

Với Docker Swarm cho high availability:

docker swarm init
docker stack deploy -c docker-compose.yml mystack
docker service update --image myapp:v2 mystack_app

Dọn dẹp images và containers không dùng để tiết kiệm disk:

docker system prune -af --volumes

VPS offshore AnubizHost cho phép bạn chạy Docker Swarm cluster multi-node bằng cách kết hợp nhiều VPS trong cùng region.

Why Anubiz Host

100% async — no calls, no meetings
Delivered in days, not weeks
Full documentation included
Production-grade from day one
Security-first approach
Post-delivery support included

Ready to get started?

Skip the research. Tell us what you need, and we'll scope it, implement it, and hand it back — fully documented and production-ready.

Anubiz Chat AI

Online