Docker khối lượng dữ liệu mysql

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 Docker

Hì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ác tệp nhị phân được bao gồm được giới hạ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 
      
      3

    • 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 
      
      4

    • 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

    • 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 
      
      6

    • 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 
      
      7

    • 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 
      
      8

    • 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 
      
      9

    • 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 
      
      00

    • 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 
      
      01

    • 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 
      
      02

    • 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 
      
      03 (dành cho MySQL Enterprise Edition 8. 0 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 
      
      04

  • Tất cả các tệp nhị phân đều bị loại bỏ;

Cấu hình máy chủ MySQL

Khi 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 
5

Lệ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ệu

Mộ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ục

Bộ 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ệ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 
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ứa

Mộ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 động

  • Tệ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 
    
    26

    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

    Bạ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ổ sung

Nế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 
2
Kết nối với MySQL từ một Ứng dụng trong Bộ chứa Docker khác

Bằ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 
4

Sau đó, 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 
8
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 
9

Sau đó, 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ết

Sử dụng Sao lưu doanh nghiệp MySQL với Docker

MySQL 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 
2

Vớ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

  1. 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

  2. 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ị ở đâ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 
    
    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

  1. 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 
    
    92
  2. Trê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 
    
    93
  3. Bắ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 
    
    94

    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 khi khởi động, vùng chứa sẽ bị xóa sau khi thoát

  4. Khở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 
    
    95

    Hoặ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 Docker

Bê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ủ MySQL

Sao lưu dữ liệu MySQL Server bằng mysqldump với Docker

  1. 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à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 
    
    97

    Trong 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

  2. 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ị ở đâ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 
    
    98

Khôi phục dữ liệu MySQL Server bằng mysqldump với Docker

  1. Đả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 đó

  2. 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 
    
    99

    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 khi khởi động, vùng chứa sẽ bị xóa sau khi thoát

  3. Đă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ết

  • Khi 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 Docker

Khi 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 đế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 
    
    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ườ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. 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ạ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,
    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à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 
    
    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 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 
    
    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 đú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 
    
    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