Hầu hết các lệnh mẫu sau đây đều có docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
0 làm kho lưu trữ hình ảnh Docker khi lệnh đó phải được chỉ định (như với các lệnh docker pull và docker run); Cài đặt MySQL được tối ưu hóa cho DockerHình ảnh Docker cho MySQL được tối ưu hóa cho kích thước mã, có nghĩa là chúng chỉ bao gồm các thành phần quan trọng được cho là phù hợp với phần lớn người dùng chạy các phiên bản MySQL trong bộ chứa Docker. Cài đặt MySQL Docker khác với cài đặt phổ biến, không phải Docker ở các khía cạnh sau Cấu hình máy chủ MySQLKhi bạn khởi động bộ chứa MySQL Docker, bạn có thể chuyển các tùy chọn cấu hình cho máy chủ thông qua lệnh docker run. Ví dụ docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
5Lệnh khởi động Máy chủ MySQL với docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
05 làm bộ ký tự mặc định và docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
06 làm đối chiếu mặc định cho cơ sở dữ liệuMột cách khác để định cấu hình Máy chủ MySQL là chuẩn bị tệp cấu hình và gắn tệp đó vào vị trí của tệp cấu hình máy chủ bên trong vùng chứa. Xem Thay đổi cấu hình và dữ liệu liên tục để biết chi tiết Thay đổi cấu hình và dữ liệu liên tụcBộ chứa Docker về nguyên tắc là tạm thời và mọi dữ liệu hoặc cấu hình sẽ bị mất nếu bộ chứa bị xóa hoặc bị hỏng (xem các cuộc thảo luận tại đây). Khối lượng Docker cung cấp một cơ chế để duy trì dữ liệu được tạo bên trong vùng chứa Docker. Khi khởi tạo, bộ chứa Máy chủ MySQL tạo một khối Docker cho thư mục dữ liệu máy chủ. Đầu ra JSON từ lệnh kiểm tra docker trên vùng chứa bao gồm khóa docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
07, có giá trị cung cấp thông tin về khối lượng thư mục dữ liệudocker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
9Đầu ra cho thấy thư mục nguồn docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
08, trong đó dữ liệu được duy trì trên máy chủ, đã được gắn vào docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
09, thư mục dữ liệu máy chủ bên trong vùng chứaMột cách khác để bảo toàn dữ liệu là gắn kết thư mục máy chủ bằng cách sử dụng tùy chọn docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
20 khi tạo vùng chứa. Kỹ thuật tương tự có thể được sử dụng để duy trì cấu hình của máy chủ. Lệnh sau tạo một thùng chứa Máy chủ MySQL và gắn kết cả thư mục dữ liệu và tệp cấu hình máy chủdocker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
Lệnh gắn kết docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
21 tại docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
22 (tệp cấu hình máy chủ bên trong vùng chứa) và docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
23 tại docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
09 (thư mục dữ liệu bên trong vùng chứa). Các điều kiện sau phải được đáp ứng để gắn kết hoạt độngTệp cấu hình docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
21 phải tồn tại và nó phải chứa thông số kỹ thuật để khởi động máy chủ bởi người dùng docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
26docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
0Bạn cũng có thể bao gồm các tùy chọn cấu hình máy chủ khác trong tệp Thư mục dữ liệu docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
23 phải tồn tại. Để quá trình khởi tạo máy chủ diễn ra, thư mục phải trống. Bạn cũng có thể gắn một thư mục đã điền sẵn dữ liệu và khởi động máy chủ với nó;
Chạy tập lệnh khởi tạo bổ sungNếu có bất kỳ tập lệnh docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
28 hoặc docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
29 nào bạn muốn chạy trên cơ sở dữ liệu ngay sau khi nó được tạo, bạn có thể đặt chúng vào thư mục máy chủ và sau đó gắn thư mục tại docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
40 bên trong vùng chứa. Ví dụdocker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
2Kết nối với MySQL từ một Ứng dụng trong Bộ chứa Docker khácBằng cách thiết lập mạng Docker, bạn có thể cho phép nhiều bộ chứa Docker giao tiếp với nhau để ứng dụng khách trong bộ chứa Docker khác có thể truy cập Máy chủ MySQL trong bộ chứa máy chủ. Đầu tiên, tạo một mạng Docker docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
4Sau đó, khi bạn đang tạo và khởi động máy chủ và bộ chứa máy khách, hãy sử dụng tùy chọn docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
41 để đưa chúng vào mạng mà bạn đã tạo. Ví dụdocker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
8docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
9Sau đó, bộ chứa docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
42 có thể kết nối với bộ chứa docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
43 bằng tên máy chủ docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
43 và ngược lại, do Docker tự động thiết lập DNS cho các tên bộ chứa đã cho. Trong ví dụ sau, chúng tôi chạy ứng dụng khách mysql từ bên trong bộ chứa docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
42 để kết nối với máy chủ docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
43 trong bộ chứa riêng của nódocker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
5Để biết các kỹ thuật kết nối mạng khác cho vùng chứa, hãy xem phần kết nối mạng vùng chứa Docker trong Tài liệu Docker Nhật ký lỗi máy chủKhi Máy chủ MySQL được khởi động lần đầu với bộ chứa máy chủ của bạn, nhật ký lỗi máy chủ KHÔNG được tạo nếu một trong các điều kiện sau là đúng Tệp cấu hình máy chủ từ máy chủ lưu trữ đã được gắn kết, nhưng tệp này không chứa biến hệ thống docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
47 (xem Thay đổi cấu hình và dữ liệu liên tục khi gắn kết tệp cấu hình máy chủ)Tệp cấu hình máy chủ từ máy chủ lưu trữ chưa được gắn kết, nhưng biến môi trường Docker docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
48 là docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
49 (là trạng thái mặc định của biến cho MySQL 8. 0 vùng chứa máy chủ). Nhật ký lỗi của Máy chủ MySQL sau đó được chuyển hướng đến docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
80, để nhật ký lỗi đi vào nhật ký của bộ chứa Docker và có thể xem được bằng cách sử dụng lệnh docker logs docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
81
Để làm cho Máy chủ MySQL tạo nhật ký lỗi khi một trong hai điều kiện là đúng, hãy sử dụng tùy chọn docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
82 để định cấu hình máy chủ tạo nhật ký lỗi tại một vị trí cụ thể bên trong vùng chứa. Để duy trì nhật ký lỗi, hãy gắn tệp máy chủ tại vị trí của nhật ký lỗi bên trong vùng chứa như được giải thích trong Thay đổi cấu hình và dữ liệu liên tục. Tuy nhiên, bạn phải đảm bảo rằng Máy chủ MySQL bên trong bộ chứa của nó có quyền ghi vào tệp máy chủ được gắn kếtSử dụng Sao lưu doanh nghiệp MySQL với DockerMySQL Enterprise Backup là một tiện ích sao lưu được cấp phép thương mại cho MySQL Server, có sẵn với MySQL Enterprise Edition. MySQL Enterprise Backup được bao gồm trong bản cài đặt Docker của MySQL Enterprise Edition Trong ví dụ sau, chúng tôi giả định rằng bạn đã có Máy chủ MySQL chạy trong bộ chứa Docker (xem Phần 2. 5. 6. 1, “Các bước cơ bản để triển khai máy chủ MySQL với Docker” về cách khởi động phiên bản Máy chủ MySQL với Docker). Để MySQL Enterprise Backup sao lưu MySQL Server, nó phải có quyền truy cập vào thư mục dữ liệu của máy chủ. Điều này có thể đạt được bằng cách, ví dụ, gắn kết một thư mục máy chủ trên thư mục dữ liệu của Máy chủ MySQL khi bạn khởi động máy chủ docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
2Với lệnh này, Máy chủ MySQL được khởi động với hình ảnh Docker của Phiên bản doanh nghiệp MySQL và thư mục máy chủ docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
83 đã được gắn vào thư mục dữ liệu của máy chủ (docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
09) bên trong bộ chứa máy chủ. Chúng tôi cũng giả định rằng, sau khi máy chủ được khởi động, các đặc quyền bắt buộc cũng đã được thiết lập cho MySQL Enterprise Backup để truy cập máy chủ (xem Cấp đặc quyền MySQL cho Quản trị viên sao lưu, để biết chi tiết). Sử dụng các bước sau để sao lưu và khôi phục phiên bản Máy chủ MySQLĐể sao lưu phiên bản Máy chủ MySQL đang chạy trong bộ chứa Docker bằng Sao lưu doanh nghiệp MySQL với Docker, hãy làm theo các bước được liệt kê tại đây Trên cùng một máy chủ nơi bộ chứa Máy chủ MySQL đang chạy, hãy khởi động một bộ chứa khác có hình ảnh của Phiên bản doanh nghiệp MySQL để thực hiện sao lưu bằng lệnh Sao lưu doanh nghiệp MySQL docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
85. Cung cấp quyền truy cập vào thư mục dữ liệu của máy chủ bằng cách sử dụng liên kết gắn kết mà chúng tôi đã tạo ở bước trước. Ngoài ra, hãy gắn thư mục máy chủ (docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
86 trong ví dụ này) vào thư mục lưu trữ để sao lưu trong vùng chứa (docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
87 trong ví dụ) để duy trì các bản sao lưu mà chúng tôi đang tạo. Đây là một lệnh mẫu cho bước này, trong đó Sao lưu doanh nghiệp MySQL được bắt đầu với hình ảnh Docker được tải xuống từ Bộ phận hỗ trợ Oracle của tôi)docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
90Điều quan trọng là phải kiểm tra phần cuối của đầu ra bằng mysqlbackup để đảm bảo sao lưu đã được hoàn thành thành công Vùng chứa thoát sau khi công việc sao lưu kết thúc và với tùy chọn docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
88 được sử dụng để khởi động, vùng chứa sẽ bị xóa sau khi thoát. Một bản sao lưu hình ảnh đã được tạo và có thể được tìm thấy trong thư mục máy chủ được gắn ở bước cuối cùng để lưu trữ các bản sao lưu, như được hiển thị ở đâydocker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
91
Để khôi phục phiên bản Máy chủ MySQL trong bộ chứa Docker bằng Sao lưu doanh nghiệp MySQL với Docker, hãy làm theo các bước được liệt kê tại đây Dừng bộ chứa Máy chủ MySQL, điều này cũng dừng Máy chủ MySQL đang chạy bên trong docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
92Trên máy chủ, xóa tất cả nội dung trong liên kết gắn kết cho thư mục dữ liệu Máy chủ MySQL docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
93Bắt đầu vùng chứa có hình ảnh của MySQL Enterprise Edition để thực hiện khôi phục bằng lệnh MySQL Enterprise Backup docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
89. Gắn kết thư mục dữ liệu của máy chủ và thư mục lưu trữ cho các bản sao lưu, giống như những gì chúng tôi đã làm khi sao lưu máy chủdocker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
94Vùng chứa thoát sau khi công việc sao lưu kết thúc và với tùy chọn docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
88 được sử dụng khi khởi động, vùng chứa sẽ bị xóa sau khi thoátKhởi động lại bộ chứa máy chủ, thao tác này cũng khởi động lại máy chủ đã khôi phục, sử dụng lệnh sau docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
95Hoặc, khởi động Máy chủ MySQL mới trên thư mục dữ liệu đã khôi phục, như được hiển thị ở đây docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
96Đăng nhập vào máy chủ để kiểm tra xem máy chủ có đang chạy với dữ liệu được khôi phục không
Sử dụng mysqldump với DockerBên cạnh việc sử dụng MySQL Enterprise Backup để sao lưu Máy chủ MySQL chạy trong bộ chứa Docker, bạn có thể thực hiện sao lưu logic cho máy chủ của mình bằng cách sử dụng tiện ích mysqldump, chạy bên trong bộ chứa Docker Các hướng dẫn sau đây giả định rằng bạn đã có Máy chủ MySQL chạy trong bộ chứa Docker và khi bộ chứa được khởi động lần đầu tiên, thư mục máy chủ docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
83 đã được gắn vào thư mục dữ liệu của máy chủ docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
09 (xem gắn kết thư mục máy chủ trên thư mục dữ liệu . Chúng tôi cũng giả định rằng, sau khi máy chủ được khởi động, một người dùng có đặc quyền phù hợp (docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
93 trong ví dụ này) đã được tạo, với mysqldump có thể truy cập máy chủ. Sử dụng các bước sau để sao lưu và khôi phục dữ liệu Máy chủ MySQLSao lưu dữ liệu MySQL Server bằng mysqldump với Docker Trên cùng một máy chủ nơi bộ chứa Máy chủ MySQL đang chạy, hãy khởi động một bộ chứa khác có hình ảnh của Máy chủ MySQL để thực hiện sao lưu bằng tiện ích mysqldump (xem tài liệu về tiện ích để biết chức năng, tùy chọn và giới hạn của nó). Cung cấp quyền truy cập vào thư mục dữ liệu của máy chủ bằng cách gắn liên kết docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
83. Ngoài ra, hãy gắn một thư mục máy chủ (docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
86 trong ví dụ này) vào một thư mục lưu trữ để sao lưu bên trong vùng chứa (docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
87 được sử dụng trong ví dụ này) để duy trì các bản sao lưu bạn đang tạo. Đây là lệnh mẫu để sao lưu tất cả cơ sở dữ liệu trên máy chủ bằng thiết lập nàydocker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
97Trong lệnh, tùy chọn docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
97 được sử dụng để trình bao hệ thống được gọi sau khi bộ chứa được khởi động và tùy chọn docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
98 được sử dụng để chỉ định lệnh mysqldump sẽ được chạy trong trình bao, có đầu ra được chuyển hướng đến tệp docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
99 trong Vùng chứa thoát sau khi công việc sao lưu kết thúc và với tùy chọn docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
88 được sử dụng để khởi động, vùng chứa sẽ bị xóa sau khi thoát. Một bản sao lưu hợp lý đã được tạo và có thể được tìm thấy trong thư mục máy chủ được gắn để lưu trữ bản sao lưu, như được hiển thị ở đâydocker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
98
Khôi phục dữ liệu MySQL Server bằng mysqldump với Docker Đảm bảo rằng bạn có Máy chủ MySQL đang chạy trong vùng chứa mà bạn muốn khôi phục dữ liệu đã sao lưu của mình trên đó Bắt đầu một vùng chứa có hình ảnh của Máy chủ MySQL để thực hiện khôi phục với máy khách mysql. Gắn kết thư mục dữ liệu của máy chủ, cũng như thư mục lưu trữ chứa bản sao lưu của bạn docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
99Vùng chứa thoát sau khi công việc sao lưu kết thúc và với tùy chọn docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
88 được sử dụng khi khởi động, vùng chứa sẽ bị xóa sau khi thoátĐăng nhập vào máy chủ để kiểm tra xem dữ liệu được khôi phục hiện có trên máy chủ chưa
Vấn đề đã biếtKhi sử dụng biến hệ thống máy chủ docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
52 để định cấu hình tên tệp nhật ký kiểm tra, hãy sử dụng công cụ sửa đổi tùy chọn docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
53 với nó;
Biến môi trường DockerKhi bạn tạo bộ chứa Máy chủ MySQL, bạn có thể định cấu hình phiên bản MySQL bằng cách sử dụng tùy chọn docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
54 (dạng viết tắt docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
55) và chỉ định một hoặc nhiều biến môi trường. Không có quá trình khởi tạo máy chủ nào được thực hiện nếu thư mục dữ liệu được gắn không trống, trong trường hợp đó, cài đặt bất kỳ biến nào trong số này không có hiệu lực (xem Thay đổi cấu hình và dữ liệu liên tục) và không có nội dung hiện có nào của thư mục, bao gồm cả cài đặt máy chủ, được sửa đổi trong quá trình chứa Các biến môi trường có thể được sử dụng để định cấu hình phiên bản MySQL được liệt kê tại đây Các biến boolean bao gồm docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
56, docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
57, docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
58 và docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
48 được biến thành true bằng cách đặt chúng với bất kỳ chuỗi nào có độ dài khác không. Do đó, đặt chúng thành, ví dụ: “0”, “false” hoặc “no” không làm cho chúng sai mà thực sự làm cho chúng thành đúng. Đây là một vấn đề được biết đếndocker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
56. Khi biến này là true (là trạng thái mặc định của nó, trừ khi docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
21 được đặt hoặc docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
58 được đặt thành true), một mật khẩu ngẫu nhiên cho người dùng gốc của máy chủ được tạo khi bộ chứa Docker được khởi động. Mật khẩu được in tới docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
23 của bộ chứa và có thể được tìm thấy bằng cách xem nhật ký của bộ chứa (xem Khởi động phiên bản máy chủ MySQL)docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
57. Khi biến là true (là trạng thái mặc định của nó, trừ khi docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
21 được đặt hoặc docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
58 được đặt thành true), mật khẩu của người dùng gốc được đặt là hết hạn và phải được thay đổi trước khi MySQL có thể được sử dụng bình thườngdocker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
27. Biến này cho phép bạn chỉ định tên của cơ sở dữ liệu sẽ được tạo khi khởi động hình ảnh. Nếu tên người dùng và mật khẩu được cung cấp cùng với docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
28 và docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
29, thì người dùng đó được tạo và cấp quyền truy cập siêu người dùng vào cơ sở dữ liệu này (tương ứng với docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
900). Cơ sở dữ liệu đã chỉ định được tạo bởi câu lệnh CREATE DATABASE IF NOT EXIST, để biến không có hiệu lực nếu cơ sở dữ liệu đã tồn tạidocker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
28, docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
29. Các biến này được sử dụng cùng nhau để tạo người dùng và đặt mật khẩu của người dùng đó, đồng thời người dùng được cấp quyền siêu người dùng đối với cơ sở dữ liệu được chỉ định bởi biến docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
27. Cả docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
28 và docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
29 đều được yêu cầu để tạo người dùng—nếu bất kỳ biến nào trong hai biến không được đặt, biến còn lại sẽ bị bỏ qua. Nếu cả hai biến được đặt nhưng docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
27 thì không, người dùng được tạo mà không có bất kỳ đặc quyền nàodocker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
907. Theo mặc định, MySQL tạo tài khoản docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
908. Tài khoản này chỉ có thể được kết nối từ bên trong vùng chứa như được mô tả trong Kết nối với máy chủ MySQL từ bên trong vùng chứa. Để cho phép kết nối gốc từ các máy chủ khác, hãy đặt biến môi trường này. Ví dụ: giá trị docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
909, là IP cổng Docker mặc định, cho phép kết nối từ máy chủ chạy vùng chứa. Tùy chọn này chỉ chấp nhận một mục nhập, nhưng các ký tự đại diện được cho phép (ví dụ: docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
910 hoặc docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
911)docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
48. Khi biến là đúng (là trạng thái mặc định của nó cho MySQL 8. 0), nhật ký lỗi của Máy chủ MySQL được chuyển hướng đến docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
80, để nhật ký lỗi đi vào nhật ký của bộ chứa Docker và có thể xem được bằng cách sử dụng lệnh docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
81 docker logsdocker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
21. Biến này chỉ định mật khẩu được đặt cho tài khoản root MySQLĐặt mật khẩu người dùng root MySQL trên dòng lệnh không an toàn. Để thay thế cho việc chỉ định mật khẩu một cách rõ ràng, bạn có thể đặt biến có đường dẫn tệp vùng chứa cho tệp mật khẩu, sau đó gắn tệp từ máy chủ chứa mật khẩu tại đường dẫn tệp vùng chứa. Điều này vẫn chưa an toàn lắm vì vị trí của tệp mật khẩu vẫn bị lộ. Tốt hơn là sử dụng các cài đặt mặc định của docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
56 và docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
57, cả hai đều đúngdocker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
58. Đặt nó thành true để cho phép vùng chứa được bắt đầu bằng mật khẩu trống cho người dùng rootĐặt biến này thành true là không an toàn, vì nó sẽ khiến phiên bản MySQL của bạn hoàn toàn không được bảo vệ, cho phép mọi người có được quyền truy cập siêu người dùng hoàn chỉnh. Tốt hơn là sử dụng các cài đặt mặc định của docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
56 và docker run --name=mysql1 \
--mount type=bind,src=/path-on-host-machine/my.cnf ,dst=/etc/my.cnf \
--mount type=bind,src=/path-on-host-machine/datadir ,dst=/var/lib/mysql \
-d mysql/mysql-server:tag
57, cả hai đều đúng
Làm cách nào để duy trì dữ liệu MySQL trong docker?
Hình ảnh Docker của MySQL được định cấu hình để lưu trữ tất cả dữ liệu của nó trong thư mục /var/lib/mysql. Gắn ổ đĩa vào thư mục này sẽ cho phép lưu trữ dữ liệu liên tục tồn tại lâu hơn bất kỳ phiên bản vùng chứa nào . Sử dụng lệnh này để khởi động bộ chứa MySQL của bạn sẽ tạo một khối Docker mới có tên là mysql.
Làm cách nào để sử dụng cơ sở dữ liệu MySQL trong bộ chứa Docker?
Bước 1. Kéo hình ảnh Docker cho MySQL. Bắt đầu bằng cách lấy Docker Image thích hợp cho MySQL. . Bước 2. Triển khai và khởi động MySQL Container. . Bước 3. Kết nối với Docker MySQL Container
Làm cách nào để tạo cơ sở dữ liệu trong docker MySQL?
Cần cài đặt Docker phiên bản mới nhất trong máy của bạn. . bước đầu tiên. Tải xuống hình ảnh MySQL bước thứ 2. thực hiện vùng chứa bước thứ 3. Lấy IP của container bước thứ 4. Truy cập cơ sở dữ liệu từ vùng chứa Phần kết luận
Làm cách nào để chạy các lệnh MySQL trong Docker?
Chúng tôi sẽ chỉ hiển thị quy trình cơ bản ở đây cho tùy chọn thứ hai ở trên. . Tạo một thư mục dữ liệu trên một ổ đĩa phù hợp trên hệ thống máy chủ của bạn, e. g. /của tôi/của riêng/datadir Bắt đầu vùng chứa mysql của bạn như thế này. $ docker run --name some-mysql -v /my/own/datadir. /var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql. nhãn
|