Cài đặt MySQL trên docker


Hầu hết ứng dụng web đều có sử dụng database MySQL. MySQL có image chính thức và chọn image “mysql” và tag phiên bản “latest”

Cài đặt MySQL Image:

Chạy câu lệnh để cài MySQL Server:
~ > docker run -it -d --name mysql01 -v /data/mysql/mysql01:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:latest

Hướng dẫn các tham số:

– “docker run“: câu lệnh để chạy 1 image và bắt đầu 1 container. Container là một process sử dụng 1 image là nội dung bên trong.
– “-it“: tham số để cho phép thao tác về sau như can thiệp vào container để thực thi các câu lệnh hệ thống.
– “-d“: tham số để nói sau khi thực hiện câu lệnh trên thì cho nó chạy background và con trỏ vẫn ở host hiện tại.
– “–name mysql01“: đặt tên cho cái container này. Bởi vì có thể tạo nhiều container từ chung 1 image (đây chính là điểm ưu điểm của Docker), mỗi container cần có cái tên để dễ làm việc, không thì docker sẽ tự tạo 1 cái tên ngẫu nhiên. Và lưu ý, không được phép có 2 container cùng 1 tên.
– “-v /data/mysql/mysql01:/var/lib/mysql“: cho phép mount volume (link thư mục) từ bên trong container ra một thư mục bên ngoài máy đang chạy. Thử tưởng tượng, nếu không sử dụng volume để mapping thư mục, khi container này stop và bị xóa thì toàn bộ dữ liệu trong container cũng bị mất. Do đó, phải mapping ra thư mục bên ngoài để khi container bị xóa thì dữ liệu vẫn còn. Và khi start 1 container mới thì sẽ có dữ liệu trước đó. tham số “-v” là một tham số rất quan trọng Trong ví dụ này thì thư mục “/data/mysql/mysql01” là thư mục trên máy và “/var/lib/mysql” là chuỗi cố định được cài đặt sẵn trong image.
– “-e MYSQL_ROOT_PASSWORD=123456“: Tham số “-e” sẽ set một biến môi trường. Ở đây, set biến môi trường làm password root cho mysql server. Thường mỗi image đều có ghi chú về các biến môi trường và công dụng của nó khi chạy một image.
– “mysql:latest“: tên image và tag phiên bản của image sẽ chạy.

Sau khi thực hiện câu lệnh trên, nếu docker đã được cài đặt ngon lành thì sẽ có 1 container với tên “mysql01” được tạo. chạy câu lệnh “docker ps” để xem container với tên mysql01 đã chạy chưa.

Truy cập vào MySQL container

Sau khi container mysql01 đã được chạy và đang chạy (thấy được từ “docker ps”), có thể truy cập vào mysql command line để thực hiện các câu lệnh SQL muốn như setup user, tạo, xóa db…thông qua câu lệnh sau:
~ > docker exec -it mysql01 mysql -uroot -p

Import file .sql vào MySQL container

Trong phần lớn trường hợp, sau khi đã có MySQL Server, bạn thường muốn import từ file .sql. Bạn có thể chạy câu lệnh sau để import file sql.


~ > docker exec -i mysql01 mysql -uroot -p123456 --default-character-set=utf8 DATABASENAME < /data/database.sql
Share on Google Plus

About Unknown

I'm Demons, I write this blog want to share knowlegde with everyone!
    Blogger Comment

1 nhận xét: