Cài đặt Docker trên Linux và Quản lý Container với docker-compose

1. Cài đặt Docker trên Linux

1.1. Cài đặt các gói phụ thuộc

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

1.2. Cài đặt Docker

sudo yum install -y docker

1.3. Khởi động và dừng Docker

Khởi động:

sudo systemctl start docker

Dừng:

sudo systemctl stop docker

2. Quản lý Container với docker-compose

2.1. Tải xuống docker-compose

2.1.1. Tải về tệp thực thi

curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

2.1.2. Cấp quyền thực thi

sudo chmod +x /usr/local/bin/docker-compose

2.1.3. Kiểm tra cài đặt

docker-compose --version

2.2. Tạo tệp cấu hình docker-compose.yml

2.2.1. Tạo thư mục dự án

cd /home
mkdir docker-project
cd docker-project
touch docker-compose.yml

2.2.2. Nội dung tệp docker-compose.yml

version: '3.8'
services:
  cs-mysql:
    image: mysql:8.0
    privileged: true
    ports:
      - "3307:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=SecurePass123!
    volumes:
      - /home/docker/mysql/config/my.cnf:/etc/mysql/my.cnf
      - /home/docker/mysql/data:/var/lib/mysql
    networks:
      - app-network

  cs-redis:
    image: redis:6.2
    privileged: true
    ports:
      - "6380:6379"
    volumes:
      - /home/docker/redis/config/redis.conf:/etc/redis/redis.conf
    networks:
      - app-network
    command: redis-server /etc/redis/redis.conf

  cs-webapp-1:
    image: tomcat:9.0-jdk11
    privileged: true
    ports:
      - "8081:8080"
    volumes:
      - /home/docker/tomcat/webapps:/usr/local/tomcat/webapps
    networks:
      - app-network
    depends_on:
      - cs-mysql
      - cs-redis

  cs-webapp-2:
    image: tomcat:9.0-jdk11
    privileged: true
    ports:
      - "8082:8080"
    volumes:
      - /home/docker/tomcat/webapps:/usr/local/tomcat/webapps
    networks:
      - app-network
    depends_on:
      - cs-mysql
      - cs-redis

  cs-loadbalancer:
    image: nginx:1.21
    privileged: true
    ports:
      - "80:80"
    volumes:
      - /home/docker/nginx/conf.d:/etc/nginx/conf.d
      - /home/docker/nginx/logs:/var/log/nginx
    networks:
      - app-network
    depends_on:
      - cs-webapp-1
      - cs-webapp-2

networks:
  app-network:
    driver: bridge

2.3. Quản lý dịch vụ với docker-compose

2.3.1. Dừng các container đang chạy

docker stop $(docker ps -aq)

2.3.2. Khởi động các container

docker-compose up -d

2.3.3. Kiểm tra truy cập

Mở trình duyệt web và truy cập địa chỉ IP của máy chủ để kiểm tra dịch vụ.

2.3.4. Các lệnh hữu ích khác

  • Khởi động dịch vụ nền: docker-compose up -d [tên_dịch_vụ]
  • Dừng và xóa container: docker-compose down [tên_dịch_vụ]
  • Dừng container: docker-compose stop [tên_dịch_vụ]
  • Khởi động lại container: docker-compose restart [tên_dịch_vụ]
  • Hiển thị container: docker-compose ps [tên_dịch_vụ]
  • Xem log: docker-compose logs [tên_dịch_vụ]

Thẻ: docker docker-compose linux containerization mysql

Đăng vào ngày 26 tháng 6 lúc 14:26