1. 程式人生 > 實用技巧 >PHP實現15位身份證號轉18位的方法分析

PHP實現15位身份證號轉18位的方法分析

docker0問題:不支援容器名互相連線訪問!

檢視所有的docker網路

docker network ls

網路模式

bridge:橋接docker預設,自定義的網路也使用bridge模式。

none:不配置網路。

host:和宿主機共享網路。

container:容器內網路連通!用的少!侷限很大!

docker network幫助資訊

[root@localhost ~]# docker network --help

Usage:	docker network COMMAND

Manage networks

Commands:
  connect     Connect a container to a network
  create      Create a network
  disconnect  Disconnect a container from a network
  inspect     Display detailed information on one or more networks
  ls          List networks
  prune       Remove all unused networks
  rm          Remove one or more networks

測試自定義網路

刪除所有容器,保證乾淨環境。

docker rm -f $(docker ps -a -q)


回到最初的3個網絡卡

之前直接啟動的的命令

docker run -d -P --name tomcat01 tomcat
#直接啟動的容器預設是docker0網路,其實預設省略了--net bridge引數

docker0特點,預設域名不能訪問,--link需要互相打通才能相互通訊,不建議使用。

自定義網路


再檢視docker network create --help幫助資訊

docker network create --help


建立一個自定義網路

--driver bridge #預設為橋接,可不寫

--subnet 192.168.0.0/16 #子網

--gateway 192.168.0.1 #路由

docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 nettest


檢視建立的網路

docker network ls


檢視建立網路的詳細資訊

docker network inspect nettest


到此自己的網路就建立好了。

容器走自定義網路

測試啟動2個容器

docker run -d -P --name tomcat-net-01 --net nettest tomcat
docker run -d -P --name tomcat-net-02 --net nettest tomcat


再次檢視自定義網路的詳細資訊

docker network inspect nettest


此時自定義網路下面就有了我們的容器資訊。

測試域名ping

docker exec -it tomcat-net-01 ping 192.168.0.3
docker exec -it tomcat-net-01 ping tomcat-net-02



此時用容器的名稱可以互相Ping通了。

自定義的網路修復了docker0的缺陷。

網路間通訊

網路聯通,使2張網下的容器也可以互相通訊。

啟動2個容器,不指定網路。測試2個網路下是否可以互通。

docker run -d -P --name tomcat01 tomcat
docker run -d -P --name tomcat02 tomcat

#測試
docker exec -it tomcat01 ping tomcat-net-01


如何打通docker0和自定義的網路?

網路之間如何互相打通?

連線1個容器到1個網路

docker network --help


檢視幫助資訊

docker network connect --help


測試打通,檢視詳細資訊

docker network connect nettest tomcat01


檢視詳細資訊,連通後發生了什麼?

docker network inspect nettest


連通之後就將tomcat01放到了nettest網路下?

測試通訊

官方:1個容器2個IP

方法:容器和網路打通解決2張網路下容器通訊。

測試tomcat02

tomcat02與自定義網路nettest沒有打通,所以無法ping通。

結論:假設要跨網路通訊,就需要使用docker network connect打通!