සංස්කරණය කරන්න: ඔබ ඩෝකර්-ෆෝ-මැක් හෝ වින්ඩෝස් 18.03+ සඳහා ඩොකර් භාවිතා කරන්නේ නම්, ධාරකය භාවිතා කර ඔබේ මයිස්ක්ල් සේවාවට සම්බන්ධ වන්න host.docker.internal
( 127.0.0.1
ඔබේ සම්බන්ධතා නූල වෙනුවට ).
ඩෝකර් 18.09.3 වන විට, මෙය ඩොකර්-ෆෝ-ලිනක්ස් මත ක්රියා නොකරයි. ඒ අපූරු මාර්තු 8 වැනි, 2019 ඉදිරිපත් කර ඇති බවත්, බලාපොරොත්තු කේතය පදනම ඒකාබද්ධ වනු ඇත. එතෙක්, විසඳුමක් වන්නේ qoomon හි පිළිතුරෙහි විස්තර කර ඇති පරිදි බහාලුමක් භාවිතා කිරීමයි .
2020-01: යම් ප්රගතියක් ලබා ඇත. සියල්ල හොඳින් සිදුවුවහොත්, මෙය ඩෝකර් 20.04 ට ගොඩවිය යුතුය
ටීඑල්ඩීආර්
--network="host"
ඔබගේ docker run
විධානය තුළ භාවිතා කරන්න , එවිට 127.0.0.1
ඔබගේ ඩොකර් බහාලුමේ ඔබේ ඩොකර් ධාරකයට යොමු වේ.
සටහන: මෙම ප්රකාරය ක්රියාත්මක වන්නේ ප්රලේඛනය අනුව ලිනක්ස් සඳහා ඩොකර් මත පමණි .
ඩොකර් බහාලුම් ජාලකරණ මාතයන් පිළිබඳ සටහන
බහාලුම් ධාවනය කිරීමේදී ඩෝකර් විවිධ ජාලකරණ ක්රම ඉදිරිපත් කරයි . ඔබ තෝරා ගන්නා මාදිලිය මත පදනම්ව, ඔබ ඩොකර් ධාරකයේ ක්රියාත්මක වන MySQL දත්ත ගබඩාවට වෙනස් ආකාරයකින් සම්බන්ධ වනු ඇත.
docker run --network = "පාලම" (පෙරනිමිය)
ඩෝකර් docker0
පෙරනිමියෙන් නම් කළ පාලමක් නිර්මාණය කරයි . ඩොකර් ධාරකයට සහ ඩොකර් බහාලුම්වලට එම පාලමේ IP ලිපිනයක් ඇත.
ඩෝකර් ධාරකයේ, sudo ip addr show docker0
ඔබට ප්රතිදානය සමාන වනු ඇතැයි ටයිප් කරන්න:
[vagrant@docker:~] $ sudo ip addr show docker0
4: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 56:84:7a:fe:97:99 brd ff:ff:ff:ff:ff:ff
inet 172.17.42.1/16 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::5484:7aff:fefe:9799/64 scope link
valid_lft forever preferred_lft forever
ඉතින් මෙන්න මගේ ඩෝකර් ධාරකයට ජාල අතුරුමුහුණතේ IP ලිපිනය 172.17.42.1
ඇත docker0
.
දැන් නව බහාලුමක් ආරම්භ කර එය මත කවචයක් ලබා ගන්න: docker run --rm -it ubuntu:trusty bash
සහ ip addr show eth0
එහි ප්රධාන ජාල අතුරුමුහුණත සකසා ඇති ආකාරය සොයා ගැනීමට බහාලුම් වර්ගය තුළ :
root@e77f6a1b3740:/# ip addr show eth0
863: eth0: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 66:32:13:f0:f1:e3 brd ff:ff:ff:ff:ff:ff
inet 172.17.1.192/16 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::6432:13ff:fef0:f1e3/64 scope link
valid_lft forever preferred_lft forever
මෙන්න මගේ කන්ටේනරයේ IP ලිපිනය 172.17.1.192
ඇත. දැන් රවුටින් වගුව දෙස බලන්න:
root@e77f6a1b3740:/# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 172.17.42.1 0.0.0.0 UG 0 0 0 eth0
172.17.0.0 * 255.255.0.0 U 0 0 0 eth0
එබැවින් ඩොකර් ධාරකයේ IP ලිපිනය 172.17.42.1
සුපුරුදු මාර්ගය ලෙස සකසා ඇති අතර එය ඔබගේ බහාලුමෙන් ප්රවේශ විය හැකිය.
root@e77f6a1b3740:/# ping 172.17.42.1
PING 172.17.42.1 (172.17.42.1) 56(84) bytes of data.
64 bytes from 172.17.42.1: icmp_seq=1 ttl=64 time=0.070 ms
64 bytes from 172.17.42.1: icmp_seq=2 ttl=64 time=0.201 ms
64 bytes from 172.17.42.1: icmp_seq=3 ttl=64 time=0.116 ms
docker run --network = "සත්කාරක"
විකල්පයක් ලෙස ඔබට ජාල සැකසුම් සකසාhost
ඇති ඩොකර් බහාලුමක් ධාවනය කළ හැකිය . එවැනි බහාලුමක් ඩොකර් ධාරකය සමඟ ජාල ගබඩාව බෙදාගනු ඇති අතර බහාලුම් දෘෂ්ටි කෝණයෙන් localhost
(හෝ 127.0.0.1
) ඩොකර් ධාරකයට යොමු වේ.
ඔබගේ ඩොකර් බහාලුමේ විවෘත කර ඇති ඕනෑම වරායක් ඩොකර් ධාරකයේ විවෘත වන බව මතක තබා ගන්න. මෙය විකල්පයක් -p
හෝ -P
docker run
විකල්පයක් නොමැතිව .
මගේ ඩොකර් ධාරකයේ IP වින්යාසය:
[vagrant@docker:~] $ ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:98:dc:aa brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe98:dcaa/64 scope link
valid_lft forever preferred_lft forever
සහ ධාරක මාදිලියේ ඩොකර් බහාලුමකින් :
[vagrant@docker:~] $ docker run --rm -it --network=host ubuntu:trusty ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:98:dc:aa brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe98:dcaa/64 scope link
valid_lft forever preferred_lft forever
ඔබට පෙනෙන පරිදි ඩොකර් ධාරක සහ ඩොකර් බහාලුම් දෙකම එකම ජාල අතුරු මුහුණතක් බෙදා ගන්නා අතර එකම IP ලිපිනයක් ඇත.
බහාලුම් වලින් MySQL වෙත සම්බන්ධ වීම
පාලම් මාදිලිය
පාලම් මාදිලියේ බහාලුම් වලින් ඩොකර් ධාරකයේ ධාවනය වන MySQL වෙත ප්රවේශ වීමට , 172.17.42.1
IP ලිපිනයේ ඇති සම්බන්ධතා සඳහා MySQL සේවාව සවන් දෙන බවට ඔබ සහතික විය යුතුය .
එසේ කිරීමට, ඔබ සතුව bind-address = 172.17.42.1
හෝ bind-address = 0.0.0.0
ඔබේ MySQL වින්යාස ගොනුවේ (my.cnf) ඇති බවට වග බලා ගන්න .
ඔබට ගේට්ටුවේ IP ලිපිනය සමඟ පරිසර විචල්යයක් සැකසීමට අවශ්ය නම්, ඔබට පහත කේතය බහාලුමක් තුළ ධාවනය කළ හැකිය:
export DOCKER_HOST_IP=$(route -n | awk '/UG[ \t]/{print $2}')
ඉන්පසු ඔබේ යෙදුමේ, DOCKER_HOST_IP
MySQL වෙත සම්බන්ධතාවය විවෘත කිරීමට පරිසර විචල්යය භාවිතා කරන්න.
සටහන: ඔබ bind-address = 0.0.0.0
ඔබේ MySQL සේවාදායකය භාවිතා කරන්නේ නම් සියලුම ජාල අතුරුමුහුණත් වල සම්බන්ධතා සඳහා සවන් දෙනු ඇත. ඒ කියන්නේ ඔබේ MySQL සේවාදායකය අන්තර්ජාලයෙන් ලබා ගත හැකිය; ඒ අනුව ෆයර්වෝල් නීති සැකසීමට වග බලා ගන්න.
සටහන 2: ඔබ bind-address = 172.17.42.1
ඔබේ MySQL සේවාදායකය භාවිතා කරන්නේ නම් ඇති සම්බන්ධතා වලට සවන් නොදේ 127.0.0.1
. MySQL හා සම්බන්ධ වීමට අවශ්ය ඩොකර් ධාරකයේ ක්රියාත්මක වන ක්රියාවලියන්ට 172.17.42.1
IP ලිපිනය භාවිතා කිරීමට සිදුවේ .
ධාරක මාදිලිය
ධාරක මාදිලියේ බහාලුම් වලින් ඩොකර් ධාරකයේ ධාවනය වන MySQL වෙත ප්රවේශ වීම සඳහා , ඔබට bind-address = 127.0.0.1
ඔබේ MySQL වින්යාසය තුළ තබා ගත හැකි අතර ඔබ කළ යුත්තේ 127.0.0.1
ඔබේ බහාලුම් වලින් සම්බන්ධ වීමයි :
[vagrant@docker:~] $ docker run --rm -it --network=host mysql mysql -h 127.0.0.1 -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 36
Server version: 5.5.41-0ubuntu0.14.04.1 (Ubuntu)
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
සටහන: භාවිතා කරන්න mysql -h 127.0.0.1
සහ නොකරන්න mysql -h localhost
; එසේ නොමැතිනම් MySQL සේවාදායකයා යුනික්ස් සොකට් භාවිතයෙන් සම්බන්ධ වීමට උත්සාහ කරයි.