MySQL trong Docker: Hướng dẫn setup nhanh chóng

09/03/2026 P T P Chung 8 phút đọc 0 bình luận

Giới thiệu

Docker đã trở thành công cụ không thể thiếu trong việc đóng gói và triển khai ứng dụng, giúp môi trường phát triển trở nên đồng nhất và dễ dàng chia sẻ. Khi làm việc với cơ sở dữ liệu, việc cài đặt và quản lý MySQL trên máy thật có thể gây ra nhiều phiền toái về phiên bản, cấu hình và xung đột. Docker giúp giải quyết vấn đề này bằng cách cung cấp một container MySQL tách biệt, dễ dàng khởi động, dừng và xóa khi cần. Trong bài viết này, chúng ta sẽ tìm hiểu cách setup MySQL trong Docker một cách nhanh chóng và hiệu quả, từ những bước cơ bản đến các tùy chỉnh nâng cao.

Cài đặt Docker

Để bắt đầu, bạn cần cài đặt Docker trên máy của mình. Docker có sẵn cho Windows, macOS và Linux. Truy cập trang chủ Docker và tải về phiên bản phù hợp với hệ điều hành của bạn. Sau khi cài đặt xong, mở terminal hoặc command prompt và chạy lệnh:

docker --version

Nếu Docker đã được cài đặt thành công, bạn sẽ thấy thông báo phiên bản. Tiếp theo, đăng nhập vào Docker Hub (nếu cần) để có thể pull image từ kho chính thức.

Pull và chạy MySQL container

Docker cung cấp image MySQL chính thức trên Docker Hub. Để pull image mới nhất, sử dụng lệnh:

docker pull mysql:latest

Sau khi pull xong, bạn có thể chạy container MySQL với các tham số cơ bản:

docker run -d --name mysql-container -e MYSQL_ROOT_PASSWORD=yourpassword -p 3306:3306 mysql:latest

Giải thích các tham số: - -d: chạy container ở chế độ background. - --name: đặt tên cho container, giúp dễ dàng quản lý. - -e MYSQL_ROOT_PASSWORD: thiết lập mật khẩu cho tài khoản root. - -p 3306:3306: ánh xạ cổng 3306 bên trong container ra cổng 3306 trên host. - mysql:latest: tên image và tag sử dụng.

Với lệnh này, bạn đã có một MySQL server sẵn sàng lắng nghe trên cổng 3306 của máy host.

Kiểm tra và quản lý container

Để kiểm tra xem container có đang chạy hay không, dùng lệnh:

docker ps

Nếu container đang hoạt động, bạn sẽ thấy nó trong danh sách. Để kết nối vào MySQL từ host, bạn có thể dùng client command line hoặc các công cụ như MySQL Workbench. Ví dụ, kết nối từ command line:

docker exec -it mysql-container mysql -uroot -pyourpassword

Ngoài ra, để xem logs của container:

docker logs mysql-container

Để dừng container:

docker stop mysql-container

Để xóa container (dữ liệu sẽ mất nếu không mount volume):

docker rm mysql-container

Mount volume để lưu dữ liệu

Một vấn đề quan trọng khi sử dụng container là dữ liệu sẽ mất khi container bị xóa. Để lưu trữ dữ liệu MySQL một cách bền vững, bạn cần mount một thư mục trên host vào container. Ví dụ:

Quảng cáo

300x250 In-Content Advertisement

docker run -d --name mysql-container -e MYSQL_ROOT_PASSWORD=yourpassword -p 3306:3306 -v mysql_data:/var/lib/mysql mysql:latest

Hoặc mount vào một thư mục cụ thể trên host:

docker run -d --name mysql-container -e MYSQL_ROOT_PASSWORD=yourpassword -p 3306:3306 -v /path/to/host/data:/var/lib/mysql mysql:latest

Với cách này, dữ liệu MySQL sẽ được lưu trữ trong thư mục /path/to/host/data trên máy host và vẫn tồn tại ngay cả khi container bị xóa.

Sử dụng file docker-compose

Để đơn giản hóa việc setup và quản lý, bạn có thể sử dụng docker-compose. Tạo một file docker-compose.yml với nội dung:

version: '3.8'
services:
  mysql:
    image: mysql:latest
    container_name: mysql-container
    environment:
      MYSQL_ROOT_PASSWORD: yourpassword
    ports:
      - "3306:3306"
    volumes:
      - mysql_data:/var/lib/mysql
    restart: unless-stopped

volumes: mysql_data:

Chạy lệnh:

docker-compose up -d

Compose sẽ tự động pull image (nếu chưa có) và khởi động container với cấu hình đã định nghĩa. Để dừng và xóa:

docker-compose down

Các tùy chỉnh nâng cao

MySQL container hỗ trợ nhiều biến môi trường để tùy chỉnh. Ví dụ: - MYSQL_DATABASE: tên database mặc định khi khởi tạo. - MYSQL_USERMYSQL_PASSWORD: tạo tài khoản user mới. - MYSQL_ROOT_HOST: cho phép root login từ host cụ thể.

Bạn cũng có thể tùy chỉnh file cấu hình MySQL bằng cách mount file my.cnf vào /etc/mysql/conf.d/. Ví dụ:

-v /path/to/my.cnf:/etc/mysql/conf.d/custom.cnf

Nếu cần, bạn có thể chạy script SQL khi khởi tạo container bằng cách mount thư mục chứa file .sql vào /docker-entrypoint-initdb.d/.

Kết luận

Setup MySQL trong Docker không chỉ giúp tiết kiệm thời gian mà còn đảm bảo môi trường phát triển đồng nhất giữa các thành viên trong nhóm. Với vài dòng lệnh đơn giản, bạn đã có một MySQL server hoàn chỉnh, có thể tùy chỉnh và mở rộng theo nhu cầu. Việc sử dụng volume giúp bảo vệ dữ liệu, trong khi docker-compose giúp quản lý dễ dàng hơn. Docker thực sự là giải pháp lý tưởng cho những ai muốn nhanh chóng bắt tay vào làm việc với MySQL mà không phải lo lắng về cài đặt và cấu hình phức tạp.

Quảng cáo

728x90 Bottom Advertisement

Thay thế bằng mã Google AdSense

Chia sẻ bài viết

Facebook Twitter

Bình luận

Chia sẻ ý kiến của bạn về bài viết này

Viết bình luận

Bình luận của bạn sẽ được kiểm duyệt trước khi hiển thị

Chưa có bình luận nào

Hãy là người đầu tiên bình luận về bài viết này!