Hướng dẫn cài đặt MySQL 5.7 và phpMyAdmin bằng Docker

31 tháng 12, 2018 - 13818 lượt xem

Trước tiên, nếu máy bạn chưa có Docker, hãy cài đặt theo hướng dẫn tại: https://docs.docker.com/install/

Các bước cài đặt:

  • Tạo Docker network
  • Khởi tạo Docker container từ Docker image của MySQL
  • Khởi tạo Docker container từ Docker image của phpMyAdmin

1. Tạo Docker network

Việc tạo Docker network giúp cho các Docker container trong cùng 1 network có thể giao tiếp với nhau thông qua container name

Chạy lệnh sau:

docker network create mysql

Lệnh trên sẽ tạo một Docker network có tên là mysql. Chúng ta sẽ đặt 2 Docker container chạy MySQL và phpMyAdmin bên trong network mysql này

2. Khởi tạo Docker container từ Docker image của MySQL

Trước tiên, hãy tạo một thư mục dùng để lưu dữ liệu của Docker container, ví dụ: /home/moe/mysql_data

Sau đó, chạy lệnh:

docker run --name learn_mysql --network mysql -v /home/moe/mysql_data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123 -d mysql:5.7

trong đó:

  • --name learn_mysql: tên của container. Tên này sẽ được sử dụng ở bước sau, khi chúng ta khới tạo container chạy phpMyAdmin
  • --network mysql: đặt container này trong network mysql vừa được tạo ở bước 1
  • -v /home/moe/mysql_data:/var/lib/mysql : Volume dữ liệu từ container ra bên ngoài thư mục mysql_data mà chúng ta vừa tạo
  • -e MYSQL_ROOT_PASSWORD=123: đặt password cho user root. Mỗi một MySQL server khi được khởi tạo đều sẽ có một user root ban đầu.

3. Khởi tạo Docker container từ Docker image của phpMyAdmin

Chạy lệnh sau:

docker run --name myadmin -d --network mysql -p 8081:80 -e PMA_HOST=learn_mysql phpmyadmin/phpmyadmin

trong đó:

  • --name myadmin: tên container
  • --network mysql: đặt container này vào trong network mysql. Lúc này 2 container chạy phpMyAdmin và MySQL đều ở trong cùng 1 network
  • -e PMA_HOST=learn_mysql: địa chỉ IP của MySQL server. Vì chúng ta đã đặt 2 container chạy phpMyAdmin và MySQL trong cùng 1 network (mysql) nên chúng ta có thể dùng tên container chạy MySQL (learn_mysql) cho biến môi trường này
  • -p 8081:80: mapping cổng 80 của container với cổng 8081 của máy host

Sau khi hoàn thành cả 3 bước trên, chúng ta truy cập vào địa chỉ: http://localhost:8081/, xuất hiện màn hình:

Giao diện phpMyAdmin
Giao diện phpMyAdmin

 

Ở mục ngôn ngữ, bạn có thể chọn ngôn ngữ là Tiếng Việt hoặc Tiếng Anh

Ở mục Đăng nhập, bạn hãy dùng tài khoản root, mật khẩu chính là mật khẩu bạn đã đặt cho biến môi trường MYSQL_ROOT_PASSWORD khi khởi tạo MySQL container, như trong bài viết này thì mật khẩu tôi đặt là 123

Đăng nhập bằng tài khoản root
Đăng nhập bằng tài khoản root

Và đây là kết quả khi đăng nhập thành công:

Giao diện phpMyAdmin
Giao diện phpMyAdmin

Khóa học lập trình MySQlk & SQL Server - Khai giảng đầu tháng 1 tại Techmaster Việt Nam 

Bình luận

avatar
Nguyễn Hàn Duy 2020-03-25 00:40:35.598011 +0000 UTC
+1
Avatar
avatar
Trung Phú NA 2020-08-20 06:20:46.320553 +0000 UTC
Cho e hỏi vậy connect với db thì thông qua cổng nào ạ e có thử qua port 8081 mà ko đc
Avatar
avatar
Đông Trường Phạm 2021-04-03 06:12:12.72977 +0000 UTC
-v /home/moe/mysql_data:/var/lib/mysql : Volume dữ liệu từ container ra bên ngoài thư mục mysql_data mà chúng ta vừa tạo volume này là nơi lưu trữ hay sao vậy a . anh có thể nói rõ ra chút được k ạ
Avatar
* Vui lòng trước khi bình luận.
Ảnh đại diện
  +22 Thích
+22