{"id":1325,"date":"2017-01-28T21:26:54","date_gmt":"2017-01-28T13:26:54","guid":{"rendered":"http:\/\/www.royalwzy.com\/?p=1325"},"modified":"2017-01-28T21:31:56","modified_gmt":"2017-01-28T13:31:56","slug":"mysql-on-docker-single-host-networking-for-mysql-containers","status":"publish","type":"post","link":"http:\/\/www.royalwzy.com\/?p=1325","title":{"rendered":"MySQL on Docker: Single Host Networking for MySQL Containers"},"content":{"rendered":"<p>\u5bf9\u4e8eMySQL\u6765\u8bf4,\u7f51\u7edc\u662f\u975e\u5e38\u5173\u952e\u7684,\u5b83\u662f\u7ba1\u7406\u5ba2\u6237\u7aef\u8bbf\u95ee\u670d\u52a1\u5668\u548c\u96c6\u7fa4\u8282\u70b9\u4e4b\u95f4\u8bbf\u95ee\u7684\u57fa\u7840\u8d44\u6e90;\u5bb9\u5668\u5316\u7684MySQL\u670d\u52a1\u884c\u4e3a\u53d6\u51b3\u4e8eMySQL\u955c\u50cf\u5982\u4f55\u4f7f\u7528docker run\u547d\u4ee4\u884d\u751f\u51fa\u5bb9\u5668;\u4f7f\u7528Docker\u5355\u4e3b\u673a\u7f51\u7edc,MySQL\u5bb9\u5668\u53ef\u4ee5\u8fd0\u884c\u4e8e\u4e00\u4e2a\u72ec\u7acb\u7684\u73af\u5883(\u53ea\u80fd\u8bbf\u95ee\u76f8\u540c\u7f51\u7edc\u7684\u5bb9\u5668),\u6216\u8005\u4e00\u4e2a\u5f00\u653e\u7684\u73af\u5883(\u901a\u8fc7\u7aef\u53e3\u6620\u5c04,MySQL\u670d\u52a1\u5b8c\u5168\u66b4\u9732\u5230\u5916\u90e8),\u6216\u8005\u8fd0\u884c\u4e00\u4e2a\u5b8c\u5168\u65e0\u7f51\u7edc\u7684\u5b9e\u4f8b;<\/p>\n<p>&#8212; \u4e09\u79cd\u7c7b\u578b\u7684\u7f51\u7edc;<br \/>\n\u9ed8\u8ba4\u60c5\u51b5\u4e0b,Docker\u5728\u5b89\u88c5\u7684\u65f6\u5019\u4f1a\u5728\u5bbf\u4e3b\u673a\u4e0a\u521b\u5efa\u4e09\u79cd\u7c7b\u578b\u7684\u7f51\u7edc:<br \/>\n[root@docker ~]# docker network ls;<br \/>\nNETWORK ID          NAME                DRIVER              SCOPE<br \/>\n4c18ec95ca54        bridge              bridge              local<br \/>\n5c10d699ceb7        host                host                local<br \/>\ne0ce99953647        none                null                local   <\/p>\n<p>1.\u4e3b\u673a\u7f51\u7edc;<br \/>\n\u4e3b\u673a\u7f51\u7edc\u5728\u5bbf\u4e3b\u673a\u7684\u7f51\u7edc\u5806\u6808\u4e0a\u6dfb\u52a0\u4e00\u4e2a\u5bb9\u5668,\u53ef\u4ee5\u60f3\u8c61\u4e3a\u5728\u6b64\u7f51\u7edc\u4e2d\u8fd0\u884c\u7684\u5bb9\u5668\u6b63\u5728\u8fde\u63a5\u5230\u4e0e\u5bbf\u4e3b\u673a\u76f8\u540c\u7684\u7f51\u7edc\u63a5\u53e3;\u5b83\u6709\u4ee5\u4e0b\u7279\u70b9:<br \/>\n1)\u5bb9\u5668\u7684\u7f51\u7edc\u63a5\u53e3\u4e0e\u5bbf\u4e3b\u673a\u662f\u76f8\u540c\u7684;<br \/>\n2)\u6bcf\u4e2a\u5bbf\u4e3b\u673a\u53ea\u80fd\u6709\u4e00\u4e2a\u4e3b\u673a\u7f51\u7edc,\u4e0d\u80fd\u521b\u5efa\u66f4\u591a;<br \/>\n3)\u5982\u679c\u8981\u5206\u914d\u4e00\u4e2a\u5bb9\u5668\u4f7f\u7528\u6b64\u7f51\u7edc,\u9700\u8981\u5728docker run\u547d\u4ee4\u4e2d\u663e\u793a\u6307\u5b9a&#8221;&#8211;net=host&#8221;\u53c2\u6570;<br \/>\n4)\u4e0d\u652f\u6301\u5bb9\u5668\u94fe\u63a5(\u6bd4\u5982:&#8211;link mysql-container:mysql);<br \/>\n5)\u4e0d\u652f\u6301\u7aef\u53e3\u6620\u5c04(\u6bd4\u5982:-p 3307:3306);<\/p>\n<p>\u4f7f\u7528&#8221;&#8211;net=host&#8221;\u53c2\u6570\u5728\u4e3b\u673a\u7f51\u7edc\u4e0a\u521b\u5efa\u4e00\u4e2a\u5bb9\u5668:docker run -d &#8211;restart=always &#8211;name=mysql-host &#8211;net=host -e MYSQL_ROOT_PASSWORD=pwd mysql<\/p>\n<p>\u8fdb\u5165\u5bb9\u5668\u5e76\u67e5\u770b\u5bf9\u5e94\u7684\u7f51\u7edc\u63a5\u53e3,\u53d1\u73b0\u4e0e\u5bbf\u4e3b\u673a\u4e00\u6837:<br \/>\n[root@docker ~]# docker exec -it mysql-host \/bin\/bash<br \/>\nroot@docker:\/# ip addr<br \/>\n1: lo: <loopback ,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default<br \/>\n    link\/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00<br \/>\n    inet 127.0.0.1\/8 scope host lo<br \/>\n       valid_lft forever preferred_lft forever<br \/>\n    inet6 ::1\/128 scope host<br \/>\n       valid_lft forever preferred_lft forever<br \/>\n2: enp0s3: <broadcast ,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000<br \/>\n    link\/ether 08:00:27:9c:e6:2d brd ff:ff:ff:ff:ff:ff<br \/>\n    inet 10.0.2.15\/24 brd 10.0.2.255 scope global dynamic enp0s3<br \/>\n       valid_lft 84565sec preferred_lft 84565sec<br \/>\n    inet6 fe80::a00:27ff:fe9c:e62d\/64 scope link<br \/>\n       valid_lft forever preferred_lft forever<br \/>\n3: enp0s8: <\/broadcast><broadcast ,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000<br \/>\n    link\/ether 08:00:27:95:f6:b6 brd ff:ff:ff:ff:ff:ff<br \/>\n    inet 192.168.10.100\/24 brd 192.168.10.255 scope global enp0s8<br \/>\n       valid_lft forever preferred_lft forever<br \/>\n    inet6 fe80::a00:27ff:fe95:f6b6\/64 scope link<br \/>\n       valid_lft forever preferred_lft forever<br \/>\n4: docker0: <no -CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default<br \/>\n    link\/ether 02:42:8c:49:90:73 brd ff:ff:ff:ff:ff:ff<br \/>\n    inet 172.17.0.1\/16 scope global docker0<br \/>\n       valid_lft forever preferred_lft forever<\/p>\n<p>\u8fd9\u79cd\u8bbe\u7f6e\u4e0b,\u5bb9\u5668\u4e0d\u9700\u8981\u5728\u9632\u706b\u5899\u4e2d\u8bbe\u7f6e\u4efb\u4f55\u7684\u8f6c\u53d1\u89c4\u5219,\u56e0\u4e3a\u5b83\u5df2\u7ecf\u4e0e\u4e3b\u673a\u7f51\u7edc\u8fde\u63a5\u4e86;\u56e0\u6b64\u4e5f\u5c31\u4e0d\u518d\u652f\u6301\u7aef\u53e3\u6620\u5c04\u4e86;<\/p>\n<p>\u5982\u679c\u60f3\u8981\u67e5\u770b\u4e3b\u673a\u4e0a\u67d0\u4e2a\u7aef\u53e3\u662f\u5426\u5728\u76d1\u542c:[root@docker ~]# netstat -tulpn | grep 3306 (yum install -y net-tools)<br \/>\ntcp6       0      0 :::3306                 :::*                    LISTEN      3572\/mysqld     <\/p>\n<p>\u628aMySQL\u5bb9\u5668\u4ee5\u4e3b\u673a\u7f51\u7edc\u6a21\u5f0f\u8fd0\u884c\u5728\u5bbf\u4e3b\u673a\u4e0a\u4e0e\u76f4\u63a5\u6807\u51c6\u5b89\u88c5\u5230\u5bbf\u4e3b\u673a\u4e0a\u662f\u76f8\u4f3c\u7684,\u552f\u4e00\u7684\u597d\u5904\u662f\u6709\u4e00\u4e2a\u72ec\u7acb\u7684MySQL\u670d\u52a1\u5668,\u5c3d\u7ba1\u662fDocker\u7ba1\u7406\u7684;<\/p>\n<p>\u57fa\u4e8e\u4e3b\u673a\u7f51\u7edc\u521b\u5efa\u7684\u5bb9\u5668\u53ef\u4ee5\u88ab\u57fa\u4e8e\u9ed8\u8ba4\u6865\u7f51\u7edcdocker0\u548c\u7528\u6237\u81ea\u5b9a\u4e49\u7684\u6865\u7f51\u7edc\u521b\u5efa\u7684\u5bb9\u5668\u76f4\u63a5\u8bbf\u95ee;<\/p>\n<p>2.\u6865\u7f51\u7edc;<br \/>\n\u6865\u63a5\u5141\u8bb8\u540c\u4e00\u53f0\u7269\u7406\u4e3b\u673a\u4e0a\u7684\u591a\u4e2a\u7f51\u7edc\u4fdd\u6301\u5206\u79bb\u5e76\u72ec\u7acb\u901a\u4fe1;\u53ef\u4ee5\u60f3\u8c61\u6210\u8fd9\u7c7b\u4f3c\u4e8e\u5bbf\u4e3b\u673a\u7684\u53e6\u4e00\u4e2a\u5185\u90e8\u7f51\u7edc,\u53ea\u6709\u5904\u4e8e\u540c\u4e00\u7f51\u7edc\u7684\u5bb9\u5668\u624d\u80fd\u8bbf\u95ee\u5176\u5b83\u7684\u5bb9\u5668\u548c\u4e3b\u673a,\u5982\u679c\u4e3b\u673a\u53ef\u4ee5\u8fde\u63a5\u5e7f\u57df\u7f51,\u5219\u5bb9\u5668\u4e5f\u53ef\u4ee5;<\/p>\n<p>\u6709\u4e24\u79cd\u7c7b\u578b\u7684\u6865\u7f51\u7edc:1)\u9ed8\u8ba4\u7684\u6865\u7f51\u7edc(docker0);2)\u7528\u6237\u5b9a\u4e49\u7684\u6865\u7f51\u7edc;<\/p>\n<p>1)\u9ed8\u8ba4\u7684\u6865\u7f51\u7edc(docker0):<br \/>\n\u5728Docker\u5b89\u88c5\u7684\u65f6\u5019\u4f1a\u81ea\u52a8\u521b\u5efadocker0,\u53ef\u4ee5\u901a\u8fc7&#8221;ip addr&#8221;\u547d\u4ee4\u8fdb\u884c\u9a8c\u8bc1;\u9ed8\u8ba4\u7684IP\u8303\u56f4\u662f172.17.0.1\/16,\u53ef\u4ee5\u901a\u8fc7\u914d\u7f6e\u6587\u4ef6(Debian:\/etc\/default\/docker;RedHat:\/etc\/sysconfig\/docker)\u8fdb\u884c\u4fee\u6539;<\/p>\n<p>\u4e00\u822c\u7684,\u5982\u679c\u8fd0\u884cdocker run\u547d\u4ee4\u65f6\u4e0d\u6307\u5b9a&#8211;net\u53c2\u6570,Docker\u4f1a\u9ed8\u8ba4\u4f7f\u7528docker0\u7f51\u7edc\u521b\u5efa\u5bb9\u5668;<br \/>\n[root@docker ~]# docker run -d &#8211;restart=always &#8211;name=mysql-bridge -p 3307:3306 -e MYSQL_ROOT_PASSWORD=pwd mysql<\/p>\n<p>\u8fdb\u5165\u5bb9\u5668\u5e76\u67e5\u770b\u5bf9\u5e94\u7684\u7f51\u7edc\u63a5\u53e3,Docker\u521b\u5efa\u4e86\u4e00\u4e2a\u7f51\u7edc\u63a5\u53e3eth0:<br \/>\n[root@docker ~]# docker exec -it mysql-bridge \/bin\/bash<br \/>\nroot@db0336cafef9:\/# ip addr<br \/>\n1: lo: <loopback ,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default<br \/>\n    link\/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00<br \/>\n    inet 127.0.0.1\/8 scope host lo<br \/>\n       valid_lft forever preferred_lft forever<br \/>\n    inet6 ::1\/128 scope host<br \/>\n       valid_lft forever preferred_lft forever<br \/>\n5: eth0@if6: <broadcast ,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default<br \/>\n    link\/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff<br \/>\n    inet 172.17.0.2\/16 scope global eth0<br \/>\n       valid_lft forever preferred_lft forever<br \/>\n    inet6 fe80::42:acff:fe11:2\/64 scope link<br \/>\n       valid_lft forever preferred_lft forever<\/p>\n<p>\u9ed8\u8ba4\u60c5\u51b5\u4e0b,Docker\u4f7f\u7528iptables\u6765\u7ba1\u7406\u8f6c\u53d1\u5230\u6865\u7f51\u7edc\u7684\u5305;\u6bcf\u4e2a\u4f20\u51fa\u8fde\u63a5\u5c06\u663e\u793a\u4e3a\u6e90\u81ea\u67d0\u4e00\u4e2a\u5bbf\u4e3b\u673a\u81ea\u5df1\u7684IP\u5730\u5740;\u4ee5\u4e0b\u662f\u4e0a\u8ff0\u5bb9\u5668\u542f\u52a8\u540e\u5bbf\u4e3b\u673a\u7684NAT\u94fe\uff1a<br \/>\n[root@docker ~]# iptables -L -n -t nat<br \/>\nChain POSTROUTING (policy ACCEPT)<br \/>\ntarget     prot opt source               destination<br \/>\nMASQUERADE  all  &#8212;  172.17.0.0\/16        0.0.0.0\/0<br \/>\nMASQUERADE  tcp  &#8212;  172.17.0.2           172.17.0.2           tcp dpt:3306<\/p>\n<p>Chain DOCKER (2 references)<br \/>\ntarget     prot opt source               destination<br \/>\nRETURN     all  &#8212;  0.0.0.0\/0            0.0.0.0\/0<br \/>\nDNAT       tcp  &#8212;  0.0.0.0\/0            0.0.0.0\/0            tcp dpt:3307 to:172.17.0.2:3306<\/p>\n<p>\u4e0a\u9762\u7684\u89c4\u5219\u5141\u8bb83307\u7aef\u53e3\u57fa\u4e8edocker run\u547d\u4ee4\u4e2d\u7aef\u53e3\u6620\u5c04\u9009\u9879&#8221;-p 3307:3306&#8243;\u66b4\u9732\u5728\u5bbf\u4e3b\u673a\u4e0a;\u5982\u679c\u67e5\u770b\u4e3b\u673a\u4e0a\u7684netstat\u5206\u6790,\u4f1a\u53d1\u73b0MySQL\u65f6\u76d1\u542c\u57283307\u7aef\u53e3\u7684,\u5e76\u4e14\u5c5e\u4e8edocker-proxy\u8fdb\u7a0b;<br \/>\n[root@docker ~]# netstat -tulpn | grep 3307<br \/>\ntcp6       0      0 :::3307                 :::*                    LISTEN      3916\/docker-proxy  <\/p>\n<p>\u9ed8\u8ba4\u7684\u6865\u7f51\u7edc\u652f\u6301\u7aef\u53e3\u6620\u5c04\u548c\u5bb9\u5668\u94fe\u63a5,\u5982\u679c\u60f3\u8981\u94fe\u63a5\u5230\u5176\u5b83\u7684\u5bb9\u5668,\u53ef\u4ee5\u4f7f\u7528docker run\u547d\u4ee4\u7684&#8221;&#8211;link&#8221;\u9009\u9879,\u5bb9\u5668\u4f1a\u81ea\u52a8\u66b4\u9732\u73af\u5883\u53d8\u91cf\u5e76\u4e14\u901a\u8fc7\/etc\/hosts\u6587\u4ef6\u81ea\u52a8\u914d\u7f6e\u4e3b\u673a\u6620\u5c04;<\/p>\n<p>2)\u7528\u6237\u81ea\u5b9a\u4e49\u6865\u7f51\u7edc:<br \/>\nDocker\u5141\u8bb8\u521b\u5efa\u81ea\u5b9a\u4e49\u7684\u6865\u7f51\u7edc(\u4e5f\u53ef\u4ee5\u521b\u5efa\u81ea\u5b9a\u4e49\u7684overlay\u7f51\u7edc),\u5b83\u7684\u884c\u4e3a\u4e0edocker0\u7f51\u7edc\u4e00\u81f4,\u7f51\u7edc\u4e2d\u6bcf\u4e00\u4e2a\u5bb9\u5668\u90fd\u53ef\u4ee5\u7acb\u5373\u4e0e\u5176\u5b83\u5bb9\u5668\u901a\u4fe1;\u7f51\u7edc\u672c\u8eab\u4e0e\u5916\u90e8\u7684\u7f51\u7edc\u662f\u9694\u79bb\u7684;<\/p>\n<p>\u8fd9\u79cd\u7f51\u7edc\u7684\u6700\u5927\u7684\u4f18\u70b9\u662f\u6240\u6709\u7684\u5bb9\u5668\u90fd\u6709\u89e3\u6790\u5bb9\u5668\u540d\u5b57\u7684\u80fd\u529b:<br \/>\ns1:\u9996\u5148\u521b\u5efa\u4e00\u4e2a\u81ea\u5b9a\u4e49\u6865\u7f51\u7edc:<br \/>\n[root@docker ~]# docker network create &#8211;driver=bridge mysql-network<\/p>\n<p>s2:\u57fa\u4e8e\u7528\u6237\u5b9a\u4e49\u7f51\u7edc\u521b\u5efa5\u4e2amysql\u5bb9\u5668;<br \/>\n[root@docker ~]# for i in {1..5}; do docker run -d &#8211;name=mysql$i &#8211;net=mysql-network -e MYSQL_ROOT_PASSWORD=pwd mysql; done<\/p>\n<p>s3:\u767b\u9646\u5176\u4e2d\u4efb\u610f\u4e00\u4e2a\u5bb9\u5668,\u7136\u540eping\u5176\u5b83\u6240\u6709\u7684\u5bb9\u5668;<br \/>\nroot@docker ~]# docker exec -it mysql3 \/bin\/bash<br \/>\nroot@eb3ba9f5ffc5:\/# for i in {1..5}; do ping -c 1 mysql$i ; done<br \/>\nPING mysql1 (172.18.0.2): 56 data bytes<br \/>\n64 bytes from 172.18.0.2: icmp_seq=0 ttl=64 time=0.099 ms<br \/>\n&#8212; mysql1 ping statistics &#8212;<br \/>\n1 packets transmitted, 1 packets received, 0% packet loss<br \/>\nround-trip min\/avg\/max\/stddev = 0.099\/0.099\/0.099\/0.000 ms<br \/>\nPING mysql2 (172.18.0.3): 56 data bytes<br \/>\n64 bytes from 172.18.0.3: icmp_seq=0 ttl=64 time=0.097 ms<br \/>\n&#8212; mysql2 ping statistics &#8212;<br \/>\n1 packets transmitted, 1 packets received, 0% packet loss<br \/>\nround-trip min\/avg\/max\/stddev = 0.097\/0.097\/0.097\/0.000 ms<br \/>\nPING mysql3 (172.18.0.4): 56 data bytes<br \/>\n64 bytes from 172.18.0.4: icmp_seq=0 ttl=64 time=0.055 ms<br \/>\n&#8212; mysql3 ping statistics &#8212;<br \/>\n1 packets transmitted, 1 packets received, 0% packet loss<br \/>\nround-trip min\/avg\/max\/stddev = 0.055\/0.055\/0.055\/0.000 ms<br \/>\nPING mysql4 (172.18.0.5): 56 data bytes<br \/>\n64 bytes from 172.18.0.5: icmp_seq=0 ttl=64 time=0.069 ms<br \/>\n&#8212; mysql4 ping statistics &#8212;<br \/>\n1 packets transmitted, 1 packets received, 0% packet loss<br \/>\nround-trip min\/avg\/max\/stddev = 0.069\/0.069\/0.069\/0.000 ms<br \/>\nPING mysql5 (172.18.0.6): 56 data bytes<br \/>\n64 bytes from 172.18.0.6: icmp_seq=0 ttl=64 time=0.067 ms<br \/>\n&#8212; mysql5 ping statistics &#8212;<br \/>\n1 packets transmitted, 1 packets received, 0% packet loss<br \/>\nround-trip min\/avg\/max\/stddev = 0.067\/0.067\/0.067\/0.000 ms<\/p>\n<p>s4:\u67e5\u770bDNS\u914d\u7f6e,\u53d1\u73b0Docker\u914d\u7f6e\u4e86\u4e00\u4e2a\u5185\u7f6e\u7684DNS\u670d\u52a1\u5668;<br \/>\n[root@docker ~]# docker exec -it mysql3 \/bin\/bash<br \/>\nroot@eb3ba9f5ffc5:\/# cat \/etc\/resolv.conf<br \/>\nsearch htsec.com<br \/>\nnameserver 127.0.0.11<br \/>\noptions ndots:0<br \/>\nroot@eb3ba9f5ffc5:\/# <\/p>\n<p>\u5185\u7f6e\u7684DNS\u670d\u52a1\u5668\u7ef4\u62a4\u4e86\u5bb9\u5668\u540d\u79f0\u5230\u5b83IP\u5730\u5740\u7684\u6620\u5c04\u5173\u7cfb,\u8fd9\u4e2a\u7f51\u7edc\u91cc\u9762\u7684\u6240\u6709\u5bb9\u5668\u90fd\u4f1a\u6307\u5411\u6b64DNS\u670d\u52a1\u5668;\u8fd9\u4e2a\u7279\u6027\u53ef\u4ee5\u7528\u4e8e\u7f51\u7edc\u4e2d\u7684\u8282\u70b9\u53d1\u73b0,\u800c\u4e14\u5bf9\u4e8e\u6784\u5efa\u4e00\u4e2aMySQL\u5bb9\u5668\u96c6\u7fa4\u7279\u522b\u6709\u7528,\u53ef\u9009\u7684\u96c6\u7fa4\u6280\u672f\u6709MySQL\u590d\u5236,Galera\u96c6\u7fa4\u6216\u8005MySQL\u96c6\u7fa4;<\/p>\n<p>Default vs User-defined Bridge<br \/>\nArea                    Default bridge (docker0)                    User-defined bridge<br \/>\nNetwork deployment      Docker creates upon installation            Created by user<br \/>\nContainer deployment    Default to this network                     Explicitly specify \u201c&#8211;net=[network-name]\u201d in<br \/>\n                                                                    the \u201cdocker run\u201d command<br \/>\nContainer linking       Allows you to link multiple containers      Not supported<br \/>\n                        together and send connection information<br \/>\n                        from one to another by using<br \/>\n                        \u201c&#8211;link [container-name]:[service-name]\u201d.<br \/>\n                        When containers are linked, information<br \/>\n                        about a source container can be sent to<br \/>\n                        a recipient container.<br \/>\nPort mapping            Supported e.g, by using \u201c-p 3307:3306\u201d      Supported e.g, by using \u201c-p 3307:3306\u201d<br \/>\nName resolver           Not supported (unless you link them)        All containers in this network are able to<br \/>\n                                                                    resolve each other\u2019s container name to IP address.<br \/>\n                                                                    Version &lt;1.10 use \/etc\/hosts, >=1.10 use embedded<br \/>\n                                                                    DNS server.<br \/>\nPacket forwarding       Yes, via iptables                           Yes, via iptables<br \/>\nExample usage for MySQL MySQL standalone                            MySQL replication, Galera Cluster, MySQL Cluster<br \/>\n                                                                    (involving more than one MySQL container setup)<\/p>\n<p>3.\u65e0\u7f51\u7edc;<br \/>\n\u540c\u6837\u53ef\u4ee5\u5229\u7528docker run\u547d\u4ee4\u5e76\u6307\u5b9a&#8221;&#8211;net=none&#8221;\u9009\u9879\u521b\u5efa\u4e00\u4e2a\u4e0d\u4f9d\u9644\u4e8e\u4efb\u4f55\u7f51\u7edc\u7684\u5bb9\u5668,\u8fd9\u79cd\u5bb9\u5668\u53ea\u80fd\u901a\u8fc7\u4ea4\u4e92\u7684shell\u8bbf\u95ee,\u5bb9\u5668\u91cc\u9762\u4e0d\u4f1a\u914d\u7f6e\u4efb\u4f55\u9644\u52a0\u7684\u7f51\u7edc\u63a5\u53e3;<br \/>\n[root@docker ~]# docker run -d &#8211;restart=always &#8211;name=mysql-none &#8211;net=none -e MYSQL_ROOT_PASSWORD=pwd mysql<\/p>\n<p>\u8fdb\u5165\u5bb9\u5668\u5e76\u67e5\u770b\u76f8\u5e94\u7684\u7f51\u7edc:<br \/>\n[root@docker ~]# docker exec -it mysql-none \/bin\/bash<br \/>\nroot@3e0b1012db86:\/# ip addr<br \/>\n1: lo: <loopback ,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default<br \/>\n    link\/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00<br \/>\n    inet 127.0.0.1\/8 scope host lo<br \/>\n       valid_lft forever preferred_lft forever<br \/>\n    inet6 ::1\/128 scope host<br \/>\n       valid_lft forever preferred_lft forever<\/p>\n<p>\u65e0\u7f51\u7edc\u4e2d\u7684\u5bb9\u5668\u4e0d\u80fd\u52a0\u5165\u4efb\u4f55\u7f51\u7edc,\u7136\u800cMySQL\u5bb9\u5668\u4f9d\u7136\u53ef\u4ee5\u8fd0\u884c\u5e76\u4e14\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528mysql\u5ba2\u6237\u7aef\u8fdb\u884c\u8bbf\u95ee;<\/p>\n<p>\u4f7f\u7528\u573a\u666f:\u53ef\u4ee5\u8fd0\u884c\u4e00\u4e2aMySQL\u5bb9\u5668\u505a\u5907\u4efd\u6062\u590d\u9a8c\u8bc1;<\/loopback><\/broadcast><\/loopback><\/no><\/broadcast><\/loopback><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5bf9\u4e8eMySQL\u6765\u8bf4,\u7f51\u7edc\u662f\u975e\u5e38\u5173\u952e\u7684,\u5b83\u662f\u7ba1\u7406\u5ba2\u6237\u7aef\u8bbf\u95ee\u670d\u52a1\u5668\u548c\u96c6\u7fa4\u8282\u70b9\u4e4b\u95f4\u8bbf\u95ee\u7684\u57fa\u7840\u8d44\u6e90;\u5bb9\u5668\u5316\u7684MySQL [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[21],"tags":[27],"class_list":["post-1325","post","type-post","status-publish","format-standard","hentry","category-mysql","tag-mysql"],"_links":{"self":[{"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=\/wp\/v2\/posts\/1325","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1325"}],"version-history":[{"count":1,"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=\/wp\/v2\/posts\/1325\/revisions"}],"predecessor-version":[{"id":1326,"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=\/wp\/v2\/posts\/1325\/revisions\/1326"}],"wp:attachment":[{"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1325"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1325"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1325"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}