Computer >> Máy Tính >  >> Lập trình >> MySQL

Tạo vùng chứa MySQL Docker

Một trong những tính năng quan trọng nhất của Docker Containerization là nó tạo ra một môi trường giới hạn để chạy Ứng dụng với tất cả các gói và phụ thuộc cần thiết được cài đặt. Hầu hết các ứng dụng yêu cầu một cơ sở dữ liệu phụ trợ để lưu trữ các điểm dữ liệu. Oracle cung cấp Docker Images để chạy MySQL bên trong Container và do đó nó trở thành một lựa chọn tuyệt vời để thử nghiệm các ứng dụng cơ sở dữ liệu của bạn. Nó cung cấp các phiên bản Hình ảnh MySQL nhẹ với các tính năng dọn dẹp sau khi quá trình kiểm tra của bạn hoàn thành.

Docker cho phép bạn tải xuống Hình ảnh chứa các tệp nhị phân và phụ thuộc MySQL và tạo một hệ thống tệp ảo. Lưu ý rằng nếu bạn khởi động Vùng chứa Docker với cờ −−rm, sau khi bạn dừng Vùng chứa, toàn bộ hệ thống tệp cùng với Phiên bản vùng chứa sẽ bị xóa và do đó việc kết hợp cờ này với lệnh chạy sẽ cung cấp cho bạn tính năng dọn dẹp tự động để kiểm tra ứng dụng.

Trong bài viết này, chúng ta sẽ xem cách tạo MySQL Docker Containers để thử nghiệm ứng dụng của bạn.

Tạo vùng chứa Docker cho MySQL

Lệnh dưới đây tạo một phiên bản cho Hình ảnh MySQL với phiên bản mới nhất và cùng với nó, cờ −−rm giúp loại bỏ Vùng chứa cùng với hệ thống tệp khi Vùng chứa bị dừng.

sudo docker run −−rm −−name=mysql−test −e MYSQL_ALLOW_EMPTY_PASSWORD=yes −d mysql/mysql−server

Trong lệnh trên, cờ −−rm hướng dẫn daemon Docker xóa hệ thống tệp vùng chứa sau khi nó dừng. Cờ −−name cung cấp tên cho Vùng chứa. “−e MYSQL_ALLOW_EMPTY_PASSWORD =yes” hướng dẫn Vùng chứa tạo mật khẩu gốc trống.

Thực thi MySQL Docker Container

Các chương trình MySQL Client sử dụng các kết nối local socket, tức là chúng kết nối qua localhost. Để tạo kết nối MySQL cục bộ, bạn có thể sử dụng lệnh sau.

sudo docker exec −it mysql−test mysql −uroot

Người điều hành lệnh cho Docker daemon thực thi lệnh được chỉ định bên trong Docker Container. Cờ −it hướng dẫn Docker mở Vùng chứa trong một trình bao tương tác. Lệnh shell thực thi bên trong Docker Container là “mysql −uroot”.

Khách hàng truy cập bằng TCP / IP

Sau khi bạn thực hiện các lệnh trong các bước trước đó, Docker chỉ định một địa chỉ IP riêng cho Docker Containers. Nó cũng tạo ra một giao diện Mạng trên hệ thống của bạn. Chúng có thể được sử dụng làm điểm cuối để tạo kết nối TCP / IP tới dịch vụ.

Bạn không thể truy cập dịch vụ MySQL trừ khi bạn tạo kết nối TCP / IP giữa hai điểm cuối. Để làm như vậy, bạn cần tìm ra địa chỉ IP cho Giao diện mạng ảo trong hệ thống của mình và phiên bản Docker Container. Bạn có thể làm như vậy bằng cách sử dụng các lệnh bên dưới.

Để tìm địa chỉ IP của giao diện mạng trong hệ thống của bạn, hãy thực thi -

ip addr show docker0

Địa chỉ IP bạn nhận được bằng cách sử dụng lệnh trên sẽ trở thành một trong những điểm cuối mà ứng dụng khách của bạn sẽ kết nối và bạn sẽ sử dụng nó để tạo người dùng cho MySQL của mình.

Để tìm ra điểm cuối khác, là địa chỉ IP của Phiên bản vùng chứa Docker cho MySQL, bạn có thể sử dụng lệnh này -

sudo docker mysql−test

Sử dụng hai địa chỉ IP này, bây giờ bạn có thể tiếp tục và tạo kết nối TCP / IP cũng như tạo người dùng để chạy ứng dụng khách của bạn.

Để đặt hệ thống cục bộ của bạn làm người dùng gốc mà không cần bất kỳ mật khẩu nào, bạn có thể sử dụng các lệnh này.

Bên trong thiết bị đầu cuối của hệ thống, hãy thực thi Bộ chứa Docker thử nghiệm mysql để truy cập trình bao mysql.

sudo docker exec −it mysql−test mysql −uroot

Khi bạn có quyền truy cập vào shell mysql, bên trong nó sẽ thực thi lệnh này để tạo hệ thống cục bộ của bạn với tư cách là người dùng root.

create user root@<virtual network interface IP> identified by '';

Lưu ý rằng địa chỉ IP được sử dụng trong lệnh trên phải là địa chỉ của giao diện mạng ảo trong máy cục bộ của bạn mà chúng tôi đã tìm thấy trong các bước trước đó.

Để cấp tất cả quyền truy cập cho người dùng đã tạo ở trên, hãy sử dụng lệnh này.

grant all on *.* to root@<virtual network interface IP> with grant option;

Để thực hiện tự động dọn dẹp sau khi bạn đã thực hiện tất cả các thử nghiệm của mình, bạn có thể chỉ cần dừng Vùng chứa và xóa nó bằng cách sử dụng dừng rm lệnh.

Để kết thúc, trong bài viết này, chúng ta đã thảo luận về cách tạo và khởi chạy MySQL Docker Container và truy cập nó bằng cách tạo kết nối TCP / IP giữa Giao diện mạng ảo trên Máy Linux của bạn và Docker Container. Chúng tôi đã tạo người dùng root và cấp tất cả quyền truy cập vào nó.