Hướng dẫn connect to local mysql from docker container - kết nối với mysql cục bộ từ bộ chứa docker
Edit: Show
Nếu bạn đang sử dụng Docker-for-MAC hoặc Docker-for-Windows 18.03+, chỉ cần kết nối với dịch vụ MySQL của bạn bằng máy chủ Nếu bạn đang sử dụng Docker-for-Linux 20.10.0+, bạn cũng có thể sử dụng máy chủ 1.if you started your Docker container with the 1 option.Nếu không, đọc bên dưới TLDRSử dụng 2 trong lệnh 3 của bạn, sau đó 127.0.0.1 trong container Docker của bạn sẽ chỉ vào máy chủ Docker của bạn.Lưu ý: Chế độ này chỉ hoạt động trên Docker cho Linux, theo tài liệu. Lưu ý trên các chế độ mạng container dockerDocker cung cấp các chế độ mạng khác nhau khi chạy các thùng chứa. Tùy thuộc vào chế độ bạn chọn, bạn sẽ kết nối với cơ sở dữ liệu MySQL của bạn chạy trên máy chủ Docker khác nhau. docker chạy -mạng = "cầu" (mặc định)Docker tạo ra một cây cầu có tên 5 theo mặc định. Cả máy chủ Docker và container Docker đều có địa chỉ IP trên cây cầu đó.Trên máy chủ Docker, gõ 6 Bạn sẽ có đầu ra trông giống như:
Vì vậy, ở đây máy chủ Docker của tôi có địa chỉ IP 7 trên giao diện mạng 5.Bây giờ hãy bắt đầu một container mới và lấy một vỏ trên nó: 9 và trong loại container 0 để khám phá cách thiết lập giao diện mạng chính của nó:
Ở đây container của tôi có địa chỉ IP 1. Bây giờ hãy nhìn vào bảng định tuyến:
Vì vậy, địa chỉ IP của máy chủ Docker 7 được đặt làm tuyến mặc định và có thể truy cập từ container của bạn.
Docker Run -mạng = "Máy chủ"Ngoài ra, bạn có thể chạy một container Docker với các cài đặt mạng được đặt thành 3. Một container như vậy sẽ chia sẻ ngăn xếp mạng với máy chủ Docker và từ quan điểm container, 4 (hoặc 127.0.0.1 ) sẽ đề cập đến máy chủ Docker.Xin lưu ý rằng bất kỳ cổng nào được mở trong thùng chứa Docker của bạn sẽ được mở trên máy chủ Docker. Và điều này mà không yêu cầu tùy chọn 6 hoặc 7 3.Cấu hình IP trên máy chủ Docker của tôi:
và từ một container docker ở chế độ máy chủ:host mode:
Như bạn có thể thấy cả máy chủ Docker và container Docker chia sẻ cùng một giao diện mạng và như vậy có cùng một địa chỉ IP. Kết nối với MySQL từ các thùng chứaChế độ cầuĐể truy cập MySQL chạy trên máy chủ Docker từ các container ở chế độ Bridge, bạn cần đảm bảo dịch vụ MySQL đang nghe các kết nối trên địa chỉ IP 7.Để làm như vậy, hãy đảm bảo rằng bạn có 0 hoặc 1 trong tệp cấu hình MySQL của bạn (My.cnf).Nếu bạn cần đặt biến môi trường với địa chỉ IP của cổng, bạn có thể chạy mã sau trong một thùng chứa:
Sau đó, trong ứng dụng của bạn, sử dụng biến môi trường 2 để mở kết nối với MySQL.Lưu ý: Nếu bạn sử dụng 1 your MySQL server will listen for connections on all network interfaces. That means your MySQL server could be reached from the Internet ; make sure to setup firewall rules accordingly.Lưu ý 2: Nếu bạn sử dụng 0 your MySQL server won't listen for connections made to 127.0.0.1 . Processes running on the docker host that would want to connect to MySQL would have to use the 7 IP address.Chế độ máy chủĐể truy cập MySQL chạy trên máy chủ Docker từ các thùng chứa ở chế độ máy chủ, bạn có thể giữ 7 trong cấu hình MySQL của mình và tất cả những gì bạn cần làm là kết nối với 127.0.0.1 từ các thùng chứa của bạn:
Lưu ý: DO SỬ DỤNG 9 and not 0;
otherwise the MySQL client would try to connect using a unix socket.
Làm thế nào để container docker kết nối với cơ sở dữ liệu cục bộ?Làm cách nào để kết nối cơ sở dữ liệu Postgres cục bộ với container Docker ?.. Nhận địa chỉ IP cục bộ, tương tự như 192.168.1.111 (sử dụng IPConfig trong hệ thống dựa trên Linux). Lên bên trong Docker bằng Docker Exec -it. Hãy thử lệnh ping ping 192.168 .. Hãy thử lệnh telnet telnet 192.168 .. Docker có thể truy cập cơ sở dữ liệu cục bộ không?Trong một ý chính, bạn có thể sử dụng máy chủ -mạng = để liên kết localhost với container Docker của bạn và họ truy cập dịch vụ MySQL bên trong container của bạn bằng cách sử dụng tên máy chủ 127.0.0,1.use the --network=host to bind the localhost with your Docker container and they access the MySQL service inside your container using the hostname “127.0. 0.1”.
Tôi có thể sử dụng mysql với docker không?MySQL có hình ảnh Docker chính thức có sẵn trên Docker Hub.Đầu tiên xác định thẻ hình ảnh bạn nên sử dụng.Các phiên bản MySQL 5.6, 5.7 và 8.0 có sẵn.Thẻ mới nhất chỉ vào bản phát hành mới nhất, hiện tại là 8.0.. First identify the image tag you should use. MySQL versions 5.6, 5.7, and 8.0 are available. The latest tag points to the latest release, currently 8.0.
Không thể kết nối với máy chủ MySQL trên Docker?Thông thường có nghĩa là không có máy chủ MySQL chạy trên hệ thống hoặc bạn đang sử dụng tên tệp unix không chính xác hoặc số cổng TCP/IP khi cố gắng kết nối với máy chủ.Bạn cũng nên kiểm tra xem cổng TCP/IP bạn đang sử dụng chưa bị chặn bởi tường lửa hoặc dịch vụ chặn cổng.there is no MySQL server running on the system or that you are using an incorrect Unix socket file name or TCP/IP port number when trying to connect to the server. You should also check that the TCP/IP port you are using has not been blocked by a firewall or port blocking service. |