Hướng dẫn dockerfile install mysql client - dockerfile cài đặt máy khách mysql

Hướng dẫn dockerfile install mysql client - dockerfile cài đặt máy khách mysql

Đã đăng vào thg 7 22, 2019 6:53 SA 1 phút đọc 1 phút đọc

Nếu bạn làm nhiều project sử dụng các phiên bản MySQL khác nhau, có thể bạn sẽ nghĩ đến cách chuyển đổi giữa các phiên bản MySQL mỗi khi làm việc với project sử dụng phiên bản MySQL khác. Tuy nhiên, điều này khá bất tiện. Bài viết này sẽ giúp bạn giải quyết vấn đề đó.

Các bạn có thể xem thêm Hướng dẫn cài đặt nhiều phiên bản PHP chạy đồng thời với Apache trên Ubuntu.

Trong bài viết này, giả định chúng ta cần sử dụng MySQL 5.6 và MySQL 5.7 trên cùng server, và phiên bản MySQL 5.7 được sử dụng nhiều hơn sẽ được chọn làm phiên bản chính. Chúng ta sẽ cài đặt MySQL 5.7 trước. Sau đó, sử dụng Docker để cài đặt phiên bản MySQL 5.6.

Cài đặt MySQL 5.7

Chạy các lệnh sau để cài đặt mysql 5.7:

sudo apt-get update
sudo apt-get install mysql-server-5.7 mysql-server-core-5.7 mysql-client-5.7 mysql-client-core-5.7

Lúc này, MySQL 5.7 được cài đặt và chạy ở port 3306 (port mặc định).

Cài đặt Docker

Chạy lệnh sau để cài đặt docker:

curl -sSL https://get.docker.com/ | sh

Cài đặt MySQL 5.6

Chạy lệnh sau để cài đặt MySQL 5.6 trong docker container.

sudo docker run --name mysql-56-container -p 127.0.0.1:3310:3306 -e MYSQL_ROOT_PASSWORD=rootpassword -d mysql:5.6

Lưu ý: rootpassword là password của user root, có thể thay đổi tuỳ ý.

Container này chứa MySQL 5.6 được cài đặt với port 3306. Nhưng máy chủ sẽ sử dụng port 3310 để chuyển tiếp.

Kết nối đến MySQL 5.6

mysql -u root -p --host=127.0.0.1 --port=3310

Kết nối đến MySQL 5.7

mysql -u root -p

Vậy là xong. Bây giờ bạn đã có MySQL 5.6 và MySQL 5.7 chạy trên cùng máy chủ.

Lưu ý: Khi khởi động lại máy chủ, bạn cần chạy lệnh sau để khởi động lại MySQL 5.6 container:: Khi khởi động lại máy chủ, bạn cần chạy lệnh sau để khởi động lại MySQL 5.6 container:

sudo docker start mysql-56-container

All rights reserved

7.6.1 & NBSP; Các bước cơ bản để triển khai máy chủ MySQL với Docker

Cảnh báo

Các hình ảnh Docker MySQL được duy trì bởi nhóm MySQL được xây dựng dành riêng cho các nền tảng Linux. Các nền tảng khác không được hỗ trợ và người dùng sử dụng các hình ảnh MySQL Docker trên chúng đang tự chịu rủi ro. Xem cuộc thảo luận ở đây để biết một số hạn chế đã biết để chạy các container này trên các hệ điều hành không linux.

  • Tải xuống hình ảnh docker máy chủ mysql

  • Bắt đầu một phiên bản máy chủ MySQL

  • Kết nối với máy chủ MySQL từ bên trong container

  • Truy cập vỏ container

  • Dừng và xóa một thùng chứa MySQL

  • Nâng cấp thùng chứa máy chủ MySQL

  • Thêm các chủ đề về triển khai máy chủ MySQL với Docker

Tải xuống hình ảnh docker máy chủ mysql

Bắt đầu một phiên bản máy chủ MySQL

Kết nối với máy chủ MySQL từ bên trong container: A subscription is required to use the Docker images for MySQL Enterprise Edition. Subscriptions work by a Bring Your Own License model; see How to Buy MySQL Products and Services for details.

Truy cập vỏ container

docker pull mysql/mysql-server:tag

Dừng và xóa một thùng chứa MySQL:

mysql -u root -p --host=127.0.0.1 --port=3310
4 is omitted, the
mysql -u root -p --host=127.0.0.1 --port=3310
8 label is used, and the image for the latest GA version of MySQL Community Server is downloaded. Refer to the list of tags for available versions on the mysql/mysql-server page in the Docker Hub.

Nâng cấp thùng chứa máy chủ MySQL

docker pull container-registry.oracle.com/mysql/community-server:tag

Quan trọng

  • Đối với người dùng của MySQL Enterprise Edition: Một đăng ký được yêu cầu sử dụng hình ảnh Docker cho phiên bản Enterprise của MySQL. Đăng ký làm việc bằng một mô hình giấy phép mang theo của riêng bạn; Xem cách mua sản phẩm và dịch vụ MySQL để biết chi tiết.MySQL.

  • Tải xuống hình ảnh máy chủ trong một bước riêng biệt là không hoàn toàn cần thiết; Tuy nhiên, thực hiện bước này trước khi bạn tạo container Docker đảm bảo hình ảnh địa phương của bạn được cập nhật. Để tải xuống hình ảnh phiên bản cộng đồng MySQL, hãy chạy lệnh này:

  • mysql -u root -p --host=127.0.0.1 --port=3310
    
    4 là nhãn cho phiên bản hình ảnh bạn muốn kéo (ví dụ:
    mysql -u root -p --host=127.0.0.1 --port=3310
    
    5,
    mysql -u root -p --host=127.0.0.1 --port=3310
    
    6,
    mysql -u root -p --host=127.0.0.1 --port=3310
    
    7 hoặc
    mysql -u root -p --host=127.0.0.1 --port=3310
    
    8). Nếu: ________ 34 bị bỏ qua, nhãn
    mysql -u root -p --host=127.0.0.1 --port=3310
    
    8 được sử dụng và hình ảnh cho phiên bản GA mới nhất của máy chủ cộng đồng MySQL được tải xuống. Tham khảo danh sách các thẻ cho các phiên bản có sẵn trên trang MySQL/MySQL-server trong trung tâm Docker.Sign in button on the right of the page, and then enter your Oracle account credentials when prompted to.

  • Để tải xuống hình ảnh phiên bản cộng đồng MySQL từ Cơ quan đăng ký container Oracle (OCR), hãy chạy lệnh này:

  • Để tải xuống hình ảnh của MySQL Enterprise Edition từ OCR, trước tiên bạn cần chấp nhận Thỏa thuận cấp phép trên OCR và đăng nhập vào kho lưu trữ container với ứng dụng khách Docker của bạn:

    # docker login container-registry.oracle.com 
    Username: Oracle-Account-ID
    Password: password
    Login successful.

Truy cập OCR tại https://container-registry.oracle.com/ và chọn MySQL.

docker pull  container-registry.oracle.com/mysql/enterprise-server:tag

Trong danh sách các kho lưu trữ MySQL, chọn

mysql -u root -p
1.
mysql -u root -p --host=127.0.0.1 --port=3310
4
, corresponding to different versions of MySQL Docker images provided by the OCR:

  • Nếu bạn chưa đăng nhập vào OCR, hãy nhấp vào nút Đăng nhập ở bên phải của trang, sau đó nhập thông tin đăng nhập tài khoản Oracle của bạn khi được nhắc.

  • Thực hiện theo các hướng dẫn ở bên phải của trang để chấp nhận Thỏa thuận cấp phép.

Đăng nhập vào OCR với máy khách Docker của bạn (lệnh

mysql -u root -p
2) bằng lệnh
mysql -u root -p
3:

  • Tải xuống hình ảnh Docker cho MySQL Enterprise Edition từ OCR với lệnh này:

  • Có nhiều lựa chọn khác nhau cho

    mysql -u root -p --host=127.0.0.1 --port=3310
    
    4, tương ứng với các phiên bản khác nhau của hình ảnh MySQL Docker được cung cấp bởi OCR:Patch Search region and, on the Search tab, switch to the Product or Family (Advanced) subtab.

  • mysql -u root -p --host=127.0.0.1 --port=3310
    
    7,
    mysql -u root -p
    
    6 (
    mysql -u root -p
    
    7 là số phiên bản mới nhất trong sê -ri 8.0),
    mysql -u root -p --host=127.0.0.1 --port=3310
    
    8: MySQL 8.0, GA mới nhấtMySQL Server for the field, and the desired version number in the field.

  • mysql -u root -p --host=127.0.0.1 --port=3310
    
    6,
    sudo docker start mysql-56-container
    
    0 (
    sudo docker start mysql-56-container
    
    1 là số phiên bản mới nhất trong sê -ri 5.7): MySQL 5.7Docker in the text field.

    Để tải xuống hình ảnh MySQL Enterprise Edition từ trang web hỗ trợ Oracle của tôi, hãy truy cập trang web, đăng nhập vào tài khoản Oracle của bạn và thực hiện các bước này khi bạn đang ở trên trang đích:

    Hướng dẫn dockerfile install mysql client - dockerfile cài đặt máy khách mysql

  • Chọn tab.Search button and, from the result list, select the version you want, and click the Download button.

  • Chuyển đến vùng tìm kiếm bản vá và, trên tab Tìm kiếm, chuyển sang Subtab sản phẩm hoặc gia đình (Nâng cao).File Download dialogue box that appears, click and download the

    sudo docker start mysql-56-container
    
    2 file for the Docker image.

Nhập máy chủ MySQL MERSQL cho trường và số phiên bản mong muốn trong trường.

curl -sSL https://get.docker.com/ | sh
0

Bạn có thể liệt kê hình ảnh docker đã tải xuống với lệnh này:

curl -sSL https://get.docker.com/ | sh
1

Bắt đầu một phiên bản máy chủ MySQL

Để khởi động một bộ chứa Docker mới cho máy chủ MySQL, hãy sử dụng lệnh sau:

curl -sSL https://get.docker.com/ | sh
2

Tên hình ảnh có thể được lấy bằng lệnh Docker Images, như được giải thích trong việc tải xuống hình ảnh Docker máy chủ MySQL.docker images command, as explained in Downloading a MySQL Server Docker Image.

Tùy chọn

sudo docker start mysql-56-container
5, để cung cấp một tên tùy chỉnh cho thùng chứa máy chủ của bạn, là tùy chọn; Nếu không có tên container được cung cấp, một cái ngẫu nhiên được tạo ra.

Tùy chọn

sudo docker start mysql-56-container
6 là để định cấu hình chính sách khởi động lại cho container của bạn; Nó phải được đặt thành giá trị
sudo docker start mysql-56-container
7, để cho phép hỗ trợ khởi động lại máy chủ trong phiên khách (ví dụ, khi câu lệnh khởi động lại được thực hiện bởi máy khách hoặc trong quá trình cấu hình của một phiên bản cụm InnoDB). Với sự hỗ trợ để khởi động lại được bật, việc phát hành khởi động lại trong phiên máy khách khiến máy chủ và container dừng lại và sau đó khởi động lại. Hỗ trợ để khởi động lại máy chủ có sẵn cho MySQL 8.0.21 trở lên.Support for server restart is available for MySQL 8.0.21 and later.

Ví dụ: để bắt đầu một container Docker mới cho máy chủ cộng đồng MySQL, hãy sử dụng lệnh này:

curl -sSL https://get.docker.com/ | sh
3

Để bắt đầu một container Docker mới cho máy chủ doanh nghiệp MySQL với hình ảnh docker được tải xuống từ OCR, hãy sử dụng lệnh này:

curl -sSL https://get.docker.com/ | sh
4

Để bắt đầu một container Docker mới cho máy chủ doanh nghiệp MySQL với hình ảnh docker được tải xuống từ hỗ trợ Oracle của tôi, hãy sử dụng lệnh này:

curl -sSL https://get.docker.com/ | sh
5

Nếu hình ảnh Docker của tên và thẻ được chỉ định chưa được tải xuống bởi lệnh docker pull hoặc docker chạy trước đó, hình ảnh hiện đã được tải xuống. Khởi tạo cho container bắt đầu và container xuất hiện trong danh sách các container đang chạy khi bạn chạy lệnh Docker PS. Ví dụ:docker pull or docker run command, the image is now downloaded. Initialization for the container begins, and the container appears in the list of running containers when you run the docker ps command. For example:

curl -sSL https://get.docker.com/ | sh
6

Việc khởi tạo container có thể mất một thời gian. Khi máy chủ sẵn sàng để sử dụng,

sudo docker start mysql-56-container
8 của container trong đầu ra của lệnh Docker PS thay đổi từ
sudo docker start mysql-56-container
9 thành
docker pull mysql/mysql-server:tag
0.docker ps command changes from
sudo docker start mysql-56-container
9 to
docker pull mysql/mysql-server:tag
0.

Tùy chọn

docker pull mysql/mysql-server:tag
1 được sử dụng trong lệnh docker chạy ở trên làm cho container chạy trong nền. Sử dụng lệnh này để theo dõi đầu ra từ thùng chứa:docker run command above makes the container run in the background. Use this command to monitor the output from the container:

curl -sSL https://get.docker.com/ | sh
7

Sau khi khởi tạo kết thúc, đầu ra của lệnh sẽ chứa mật khẩu ngẫu nhiên được tạo cho người dùng gốc; Kiểm tra mật khẩu với, ví dụ, lệnh này:

curl -sSL https://get.docker.com/ | sh
8

Kết nối với máy chủ MySQL từ bên trong container

Khi máy chủ đã sẵn sàng, bạn có thể chạy máy khách MySQL trong thùng chứa MySQL Server, bạn mới khởi động và kết nối nó với máy chủ MySQL. Sử dụng lệnh docker exec -it để khởi động máy khách MySQL bên trong thùng chứa Docker mà bạn đã bắt đầu, giống như sau:mysql client within the MySQL Server container you just started, and connect it to the MySQL Server. Use the docker exec -it command to start a mysql client inside the Docker container you have started, like the following:

curl -sSL https://get.docker.com/ | sh
9

Khi được hỏi, hãy nhập mật khẩu gốc được tạo (xem bước cuối cùng trong việc bắt đầu một phiên bản máy chủ MySQL ở trên về cách tìm mật khẩu). Vì tùy chọn

docker pull mysql/mysql-server:tag
2 là đúng theo mặc định, sau khi bạn đã kết nối máy khách MySQL với máy chủ, bạn phải đặt lại mật khẩu gốc máy chủ bằng cách phát hành câu lệnh này:mysql client to the server, you must reset the server root password by issuing this statement:

sudo docker run --name mysql-56-container -p 127.0.0.1:3310:3306 -e MYSQL_ROOT_PASSWORD=rootpassword -d mysql:5.6
0

Thay thế

docker pull mysql/mysql-server:tag
3 bằng mật khẩu bạn chọn. Khi mật khẩu được đặt lại, máy chủ đã sẵn sàng để sử dụng.

Truy cập vỏ container

Để có quyền truy cập shell vào thùng chứa máy chủ MySQL của bạn, hãy sử dụng lệnh docker exec -it để khởi động shell bash bên trong thùng chứa:docker exec -it command to start a bash shell inside the container:

sudo docker run --name mysql-56-container -p 127.0.0.1:3310:3306 -e MYSQL_ROOT_PASSWORD=rootpassword -d mysql:5.6
1

Sau đó, bạn có thể chạy các lệnh Linux bên trong container. Ví dụ: để xem nội dung trong thư mục dữ liệu của máy chủ bên trong thùng chứa, hãy sử dụng lệnh này:

sudo docker run --name mysql-56-container -p 127.0.0.1:3310:3306 -e MYSQL_ROOT_PASSWORD=rootpassword -d mysql:5.6
2

Dừng và xóa một thùng chứa MySQL

Để dừng thùng chứa máy chủ MySQL mà chúng tôi đã tạo, hãy sử dụng lệnh này:

sudo docker run --name mysql-56-container -p 127.0.0.1:3310:3306 -e MYSQL_ROOT_PASSWORD=rootpassword -d mysql:5.6
3

Docker Stop gửi tín hiệu Sigterm đến quy trình MySQLD, để máy chủ được tắt một cách duyên dáng. sends a SIGTERM signal to the mysqld process, so that the server is shut down gracefully.

Cũng lưu ý rằng khi quá trình chính của container (MySQLD trong trường hợp hộp đựng máy chủ MySQL) bị dừng, container Docker sẽ tự động dừng lại.mysqld in the case of a MySQL Server container) is stopped, the Docker container stops automatically.

Để khởi động lại container máy chủ MySQL:

sudo docker run --name mysql-56-container -p 127.0.0.1:3310:3306 -e MYSQL_ROOT_PASSWORD=rootpassword -d mysql:5.6
4

Để dừng lại và khởi động lại thùng chứa máy chủ MySQL bằng một lệnh duy nhất:

sudo docker run --name mysql-56-container -p 127.0.0.1:3310:3306 -e MYSQL_ROOT_PASSWORD=rootpassword -d mysql:5.6
5

Để xóa thùng chứa MySQL, hãy dừng nó trước và sau đó sử dụng lệnh Docker RM:docker rm command:

sudo docker run --name mysql-56-container -p 127.0.0.1:3310:3306 -e MYSQL_ROOT_PASSWORD=rootpassword -d mysql:5.6
3
sudo docker run --name mysql-56-container -p 127.0.0.1:3310:3306 -e MYSQL_ROOT_PASSWORD=rootpassword -d mysql:5.6
7

Nếu bạn muốn âm lượng Docker cho thư mục dữ liệu của máy chủ sẽ bị xóa cùng một lúc, hãy thêm tùy chọn

docker pull mysql/mysql-server:tag
4 vào lệnh docker RM.docker rm command.

Nâng cấp thùng chứa máy chủ MySQL

Quan trọng

  • Trước khi thực hiện bất kỳ bản nâng cấp nào lên MySQL, hãy theo dõi cẩn thận các hướng dẫn trong Chương & NBSP; 10, nâng cấp MySQL. Trong số các hướng dẫn khác được thảo luận ở đó, điều đặc biệt quan trọng là sao lưu cơ sở dữ liệu của bạn trước khi nâng cấp.

  • Các hướng dẫn trong phần này yêu cầu dữ liệu và cấu hình của máy chủ đã được duy trì trên máy chủ. Xem dữ liệu tồn tại và thay đổi cấu hình để biết chi tiết.

Thực hiện theo các bước này để nâng cấp cài đặt Docker của MySQL 5.7 lên 8.0:

  • Dừng máy chủ MySQL 5.7 (tên container là

    docker pull mysql/mysql-server:tag
    5 trong ví dụ này):

    sudo docker run --name mysql-56-container -p 127.0.0.1:3310:3306 -e MYSQL_ROOT_PASSWORD=rootpassword -d mysql:5.6
    
    8
  • Tải xuống hình ảnh Docker máy chủ MySQL 8.0. Xem hướng dẫn trong việc tải xuống hình ảnh Docker máy chủ MySQL. Hãy chắc chắn rằng bạn sử dụng thẻ phù hợp cho MySQL 8.0.

  • Bắt đầu một container MySQL 8.0 Docker mới (được đặt tên

    docker pull mysql/mysql-server:tag
    6 trong ví dụ này) với dữ liệu và cấu hình máy chủ cũ (với các sửa đổi thích hợp nếu cần thí dụ). Đối với máy chủ cộng đồng MySQL, hãy chạy lệnh này:

    sudo docker run --name mysql-56-container -p 127.0.0.1:3310:3306 -e MYSQL_ROOT_PASSWORD=rootpassword -d mysql:5.6
    
    9

    Nếu cần, ví dụ, điều chỉnh

    docker pull mysql/mysql-server:tag
    7 thành tên hình ảnh chính xác, ví dụ, thay thế nó bằng
    docker pull mysql/mysql-server:tag
    8 cho hình ảnh phiên bản doanh nghiệp MySQL được tải xuống từ OCR hoặc
    docker pull mysql/mysql-server:tag
    9 cho hình ảnh phiên bản doanh nghiệp MySQL được tải xuống từ hỗ trợ Oracle của tôi.

  • Đợi máy chủ hoàn thành khởi động. Bạn có thể kiểm tra trạng thái của máy chủ bằng lệnh Docker PS (xem bắt đầu một phiên bản máy chủ MySQL để biết cách thực hiện điều đó).docker ps command (see Starting a MySQL Server Instance for how to do that).

Thực hiện theo các bước tương tự để nâng cấp trong chuỗi 8.0 (nghĩa là, từ phát hành 8.0 .____ 47 đến 8.0 .________ 51): Dừng container gốc và bắt đầu một hình ảnh mới với hình ảnh mới hơn trên dữ liệu và cấu hình máy chủ cũ. Nếu bạn đã sử dụng thẻ

mysql -u root -p --host=127.0.0.1 --port=3310
7 hoặc
mysql -u root -p --host=127.0.0.1 --port=3310
8 khi bắt đầu container ban đầu của bạn và bây giờ có bản phát hành MySQL 8.0 mới mà bạn muốn nâng cấp lên, trước tiên bạn phải kéo hình ảnh cho bản phát hành mới với lệnh:

mysql -u root -p --host=127.0.0.1 --port=3310
0

Sau đó, bạn có thể nâng cấp bằng cách bắt đầu một thùng chứa mới có cùng thẻ trên dữ liệu và cấu hình cũ (điều chỉnh tên kho lưu trữ nếu bạn đang sử dụng phiên bản Enterprise của MySQL; xem tải xuống hình ảnh docker máy chủ MySQL):new container with the same tag on the old data and configuration (adjust the repository name if you are using the MySQL Enterprise Edition; see Downloading a MySQL Server Docker Image):

mysql -u root -p --host=127.0.0.1 --port=3310
1

Ghi chú

Đối với MySQL 8.0.15 và trước đó: Bạn cần hoàn thành quy trình nâng cấp bằng cách chạy tiện ích MySQL_Upgrade trong thùng chứa máy chủ MySQL 8.0 (bước không bắt buộc cho MySQL 8.0.16 trở lên): You need to complete the upgrade process by running the mysql_upgrade utility in the MySQL 8.0 Server container (the step is not required for MySQL 8.0.16 and later):

  • mysql -u root -p --host=127.0.0.1 --port=3310
    
    2

    Khi được nhắc, hãy nhập mật khẩu gốc cho máy chủ cũ của bạn.

  • Kết thúc nâng cấp bằng cách khởi động lại container mới:

    mysql -u root -p --host=127.0.0.1 --port=3310
    
    3

Thêm các chủ đề về triển khai máy chủ MySQL với Docker

Để biết thêm các chủ đề về việc triển khai máy chủ MySQL với Docker như cấu hình máy chủ, dữ liệu và cấu hình tồn tại, nhật ký lỗi máy chủ và các biến môi trường container, xem Phần & NBSP; 7.6.2, Các chủ đề khác về triển khai Máy chủ MySQL với Docker.