1.目标及方案
目的是运行一个docker-compose.yaml文件,其中包含三个基础核心网,同时启动三个基础核心网。
可能尝试的方法:
1.在docker-compose.yaml文件里加入几个同镜像的配置,进行1比1复制。
通过修改镜像标签的方法,比如官方的版本是v1.5.0,那么我改为V1.5.1,在docker-compose.yaml文件里也进行更改。
2.修改docker-compose.yaml文件,以及镜像名字与标签
3.修改各个dockerfile,构建新的镜像,再编辑对应的docker-compose.yaml文件
2.方案1——更改标签法
基于已经下载部署成功的核心网,查看现有的镜像。
sudo docker iamges
可以看见已经存在的网元镜像,现在要对其挨个进行复制,通过retag来进行复制
然后在docker-compose.yaml文件里加入该网元镜像
更具oai-amf对其进行如下修改
结果启动核心网报错
错误的原因是地址已经在使用了,解决方案预想有两个:
-
更改ip地址:如此修改势必要将amf及其相关网元中使用到该ip地址的位置全部更改
-
使用一个新的网桥网络:这样网桥相关的地方全部都需要更改
2.1使用新的网桥网络
进行如下更改
结果报错:
可知网桥不能使用原来的网段,必须使用新的网段,那么其他地方网桥对应的位置也需更改
于是更改为如下配置:
AMF:
其他位置不变
新增网络:
结果成功启用oai-amf1
也可以看见两个网桥
按照此方法,可以构建其他几套完整的核心网,但关键问题在于,网元内部使用到该网桥的地方全部需要更改,否则核心网应该无法真正运行
2.1.1先构建一套完整的网桥网络
经过详细阅读发现docker-compose.yaml文件里设计到IP地址的地方还挺多的
数据可以 Mysql需要使用新的网络地址
各网元中设计到Mysql与其他网元的地方也需要使用新网络地址
先把所有镜像复制出v1.5.1的版本
sudo docker tag mysql:8.0 mysql:8.1
sudo docker tag oaisoftwarealliance/oai-amf:v1.5.0 oaisoftwarealliance/oai-amf:1.5.1
sudo docker tag oaisoftwarealliance/oai-smf:v1.5.0 oaisoftwarealliance/oai-smf:1.5.1
sudo docker tag oaisoftwarealliance/oai-ausf:v1.5.0 oaisoftwarealliance/oai-ausf:1.5.1
sudo docker tag oaisoftwarealliance/oai-udr:v1.5.0 oaisoftwarealliance/oai-udr:1.5.1
sudo docker tag oaisoftwarealliance/oai-udm:v1.5.0 oaisoftwarealliance/oai-udm:1.5.1
sudo docker tag oaisoftwarealliance/oai-nrf:v1.5.0 oaisoftwarealliance/oai-nrf:1.5.1
sudo docker tag oaisoftwarealliance/oai-nssf:v1.5.0 oaisoftwarealliance/oai-nssf:1.5.1
sudo docker tag oaisoftwarealliance/oai-nef:v1.5.0 oaisoftwarealliance/oai-nef:1.5.1
sudo docker tag oaisoftwarealliance/oai-pcf:v1.5.0 oaisoftwarealliance/oai-pcf:1.5.1
sudo docker tag oaisoftwarealliance/oai-upf-vpp:v1.5.0 oaisoftwarealliance/oai-upf-vpp:1.5.1
sudo docker tag oaisoftwarealliance/oai-spgwu-tiny:v1.5.0 oaisoftwarealliance/oai-spgwu-tiny:1.5.1
sudo docker tag oaisoftwarealliance/trf-gen-cn5g:latest oaisoftwarealliance/trf-gen-cn5g:1.5.1
然后修改yaml文件
version: '3.8'
services:
mysql:
container_name: "mysql"
image: mysql:8.0
volumes:
- ./database/oai_db2.sql:/docker-entrypoint-initdb.d/oai_db.sql
- ./healthscripts/mysql-healthcheck2.sh:/tmp/mysql-healthcheck.sh
environment:
- TZ=Europe/Paris
- MYSQL_DATABASE=oai_db
- MYSQL_USER=test
- MYSQL_PASSWORD=test
- MYSQL_ROOT_PASSWORD=linux
healthcheck:
test: /bin/bash -c "/tmp/mysql-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 30
networks:
public_net:
ipv4_address: 192.168.70.131
oai-udr:
container_name: "oai-udr"
image: oaisoftwarealliance/oai-udr:v1.5.0
environment:
- TZ=Europe/Paris
- UDR_NAME=OAI_UDR
- UDR_INTERFACE_NAME_FOR_NUDR=eth0
- MYSQL_IPV4_ADDRESS=192.168.70.131
- MYSQL_USER=test
- MYSQL_PASS=test
- MYSQL_DB=oai_db
- WAIT_MYSQL=120
- USE_FQDN_DNS=yes
- REGISTER_NRF=yes
- NRF_IPV4_ADDRESS=192.168.70.130
- NRF_FQDN=oai-nrf
depends_on:
- mysql
- oai-nrf
networks:
public_net:
ipv4_address: 192.168.70.136
oai-udm:
container_name: "oai-udm"
image: oaisoftwarealliance/oai-udm:v1.5.0
environment:
- TZ=Europe/Paris
- UDM_NAME=OAI_UDM
- SBI_IF_NAME=eth0
- REGISTER_NRF=yes
- USE_FQDN_DNS=yes
- UDR_IP_ADDRESS=192.168.70.136
- UDR_FQDN=oai-udr
- NRF_IPV4_ADDRESS=192.168.70.130
- NRF_FQDN=oai-nrf
depends_on:
- oai-udr
networks:
public_net:
ipv4_address: 192.168.70.137
oai-ausf:
container_name: "oai-ausf"
image: oaisoftwarealliance/oai-ausf:v1.5.0
environment:
- TZ=Europe/Paris
- AUSF_NAME=OAI_AUSF
- SBI_IF_NAME=eth0
- USE_FQDN_DNS=yes
- REGISTER_NRF=yes
- UDM_IP_ADDRESS=192.168.70.137
- UDM_FQDN=oai-udm
- NRF_IPV4_ADDRESS=192.168.70.130
- NRF_FQDN=oai-nrf
depends_on:
- oai-udm
networks:
public_net:
ipv4_address: 192.168.70.138
oai-nrf:
container_name: "oai-nrf"
image: oaisoftwarealliance/oai-nrf:v1.5.0
environment:
- TZ=Europe/Paris
- NRF_INTERFACE_NAME_FOR_SBI=eth0
networks:
public_net:
ipv4_address: 192.168.70.130
oai-amf:
container_name: "oai-amf"
image: oaisoftwarealliance/oai-amf:v1.5.0
environment:
- TZ=Europe/paris
- MCC=208
- MNC=95
- REGION_ID=128
- AMF_SET_ID=1
- SERVED_GUAMI_MCC_0=208
- SERVED_GUAMI_MNC_0=95
- SERVED_GUAMI_REGION_ID_0=128
- SERVED_GUAMI_AMF_SET_ID_0=1
- SERVED_GUAMI_MCC_1=460
- SERVED_GUAMI_MNC_1=11
- SERVED_GUAMI_REGION_ID_1=10
- SERVED_GUAMI_AMF_SET_ID_1=1
- PLMN_SUPPORT_MCC=208
- PLMN_SUPPORT_MNC=95
- PLMN_SUPPORT_TAC=0xa000
# Slice 0 (222, 123)
- SST_0=222
- SD_0=123
# Slice 0 (128, 12)
- SST_1=128
- SD_1=12
- AMF_INTERFACE_NAME_FOR_NGAP=eth0
- AMF_INTERFACE_NAME_FOR_N11=eth0
# One single SMF instance
- SMF_INSTANCE_ID_0=1
- SMF_FQDN_0=oai-smf
- SMF_IPV4_ADDR_0=192.168.70.133
- SELECTED_0=true
- NF_REGISTRATION=yes
- SMF_SELECTION=yes
- USE_FQDN_DNS=yes
- EXTERNAL_AUSF=yes
- EXTERNAL_UDM=no
- EXTERNAL_NSSF=no
- NRF_IPV4_ADDRESS=192.168.70.130
- NRF_FQDN=oai-nrf
- AUSF_IPV4_ADDRESS=192.168.70.138
- AUSF_FQDN=oai-ausf
- UDM_IPV4_ADDRESS=192.168.70.137
- UDM_FQDN=oai-udm
- INT_ALGO_LIST=[ "NIA1" , "NIA2"]
- CIPH_ALGO_LIST=[ "NEA1" , "NEA2"]
depends_on:
- mysql
- vpp-upf
- oai-ext-dn
- oai-ausf
networks:
public_net:
ipv4_address: 192.168.70.132
oai-smf:
container_name: "oai-smf"
image: oaisoftwarealliance/oai-smf:v1.5.0
environment:
- TZ=Europe/Paris
- SMF_INTERFACE_NAME_FOR_N4=eth0
- SMF_INTERFACE_NAME_FOR_SBI=eth0
- DEFAULT_DNS_IPV4_ADDRESS=172.21.3.100
- DEFAULT_DNS_SEC_IPV4_ADDRESS=8.8.8.8
- AMF_IPV4_ADDRESS=192.168.70.132
- AMF_FQDN=oai-amf
- UDM_IPV4_ADDRESS=192.168.70.137
- UDM_FQDN=oai-udm
- UPF_IPV4_ADDRESS=192.168.70.201
- UPF_FQDN_0=vpp-upf.node.5gcn.mnc95.mcc208.3gppnetwork.org
- NRF_IPV4_ADDRESS=192.168.70.130
- NRF_FQDN=oai-nrf
- DEFAULT_CSCF_IPV4_ADDRESS=127.0.0.1 # only needed when ims is being used
- USE_LOCAL_SUBSCRIPTION_INFO=yes #Set to yes if SMF uses local subscription information instead of from an UDM
- REGISTER_NRF=yes
- DISCOVER_UPF=yes
- USE_FQDN_DNS=yes
- USE_NETWORK_INSTANCE=yes
- ENABLE_USAGE_REPORTING=yes
# Slice 0 (1, 0xFFFFFF)
- DNN_NI0=oai
- TYPE0=IPv4
- DNN_RANGE0=12.1.1.151 - 12.1.1.253
- NSSAI_SST0=1
- SESSION_AMBR_UL0=200Mbps
- SESSION_AMBR_DL0=400Mbps
# Slice 1 (1, 1)
- DNN_NI1=oai.ipv4
- TYPE1=IPv4
- DNN_RANGE1=12.1.1.51 - 12.1.1.150
- NSSAI_SST1=1
- NSSAI_SD1=1
- SESSION_AMBR_UL1=100Mbps
- SESSION_AMBR_DL1=200Mbps
# Slice 2 (222, 123)
- DNN_NI2=default
- TYPE2=IPv4
- DNN_RANGE2=12.1.1.2 - 12.1.1.50
- NSSAI_SST2=222
- NSSAI_SD2=123
- SESSION_AMBR_UL2=50Mbps
- SESSION_AMBR_DL2=100Mbps
# Slice 3 for ims
- DNN_NI3=ims
- TYPE3=IPv4v6
- DNN_RANGE3=14.1.1.2 - 14.1.1.253
extra_hosts:
- "vpp-upf.node.5gcn.mnc95.mcc208.3gppnetwork.org:192.168.70.201"
depends_on:
- oai-amf
networks:
public_net:
ipv4_address: 192.168.70.133
vpp-upf:
privileged: true
container_name: "vpp-upf"
image: oaisoftwarealliance/oai-upf-vpp:v1.5.0
environment:
- IF_1_IP=192.168.70.201
- IF_1_TYPE=N4
- IF_2_IP=192.168.72.201
- IF_2_TYPE=N3
- IF_2_NWI=access.oai.org
- IF_3_IP=192.168.73.201
- IF_3_TYPE=N6
- IF_3_IP_REMOTE=192.168.73.135 # EXT-DN IP Address
- IF_3_NWI=internet.oai.org
- NAME=VPP-UPF
- MNC=95
- MCC=208
- REALM=3gppnetwork.org
- VPP_MAIN_CORE=0
- VPP_CORE_WORKER=1
# - VPP_PLUGIN_PATH=/usr/lib64/vpp_plugins/ # RHEL7
- VPP_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/vpp_plugins/ # Ubntu18.04
- SNSSAI_SD=123
- SNSSAI_SST=222
- DNN=default
- REGISTER_NRF=yes
- NRF_IP_ADDR=192.168.70.130
- NRF_PORT=80
- HTTP_VERSION=1
depends_on:
- oai-nrf
healthcheck:
test: /bin/bash -c "pgrep vpp"
interval: 10s
timeout: 5s
retries: 5
networks:
public_net:
ipv4_address: 192.168.70.134
public_net_access:
ipv4_address: 192.168.72.134
public_net_core:
ipv4_address: 192.168.73.134
oai-ext-dn:
privileged: true
init: true
container_name: "oai-ext-dn"
image: oaisoftwarealliance/trf-gen-cn5g:latest
entrypoint: /bin/bash -c \
"iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\
"ip route add 12.1.1.0/24 via 192.168.73.201 dev eth0; ip route; sleep infinity"
command: ["/bin/bash", "-c", "trap : SIGTERM SIGINT; sleep infinity & wait"]
healthcheck:
test: /bin/bash -c "iptables -L -t nat | grep MASQUERADE"
interval: 10s
timeout: 5s
retries: 5
networks:
public_net_core:
ipv4_address: 192.168.73.135
mysql1:
container_name: "mysql1"
image: mysql:8.1
volumes:
- ./database/oai_db2.sql:/docker-entrypoint-initdb.d/oai_db.sql
- ./healthscripts/mysql-healthcheck2.sh:/tmp/mysql-healthcheck.sh
environment:
- TZ=Europe/Paris
- MYSQL_DATABASE=oai_db
- MYSQL_USER=test
- MYSQL_PASSWORD=test
- MYSQL_ROOT_PASSWORD=linux
healthcheck:
test: /bin/bash -c "/tmp/mysql-healthcheck.sh"
interval: 10s
timeout: 5s
retries: 30
networks:
public_net1:
ipv4_address: 192.168.60.131
oai-udr1:
container_name: "oai-udr1"
image: oaisoftwarealliance/oai-udr:1.5.1
environment:
- TZ=Europe/Paris
- UDR_NAME=OAI_UDR
- UDR_INTERFACE_NAME_FOR_NUDR=eth0
- MYSQL_IPV4_ADDRESS=192.168.60.131
- MYSQL_USER=test
- MYSQL_PASS=test
- MYSQL_DB=oai_db
- WAIT_MYSQL=120
- USE_FQDN_DNS=yes
- REGISTER_NRF=yes
- NRF_IPV4_ADDRESS=192.168.60.130
- NRF_FQDN=oai-nrf1
depends_on:
- mysql1
- oai-nrf1
networks:
public_net1:
ipv4_address: 192.168.60.136
oai-udm1:
container_name: "oai-udm1"
image: oaisoftwarealliance/oai-udm:1.5.1
environment:
- TZ=Europe/Paris
- UDM_NAME=OAI_UDM
- SBI_IF_NAME=eth0
- REGISTER_NRF=yes
- USE_FQDN_DNS=yes
- UDR_IP_ADDRESS=192.168.60.136
- UDR_FQDN=oai-udr
- NRF_IPV4_ADDRESS=192.168.60.130
- NRF_FQDN=oai-nrf1
depends_on:
- oai-udr1
networks:
public_net1:
ipv4_address: 192.168.60.137
oai-ausf1:
container_name: "oai-ausf1"
image: oaisoftwarealliance/oai-ausf:1.5.1
environment:
- TZ=Europe/Paris
- AUSF_NAME=OAI_AUSF
- SBI_IF_NAME=eth0
- USE_FQDN_DNS=yes
- REGISTER_NRF=yes
- UDM_IP_ADDRESS=192.168.60.137
- UDM_FQDN=oai-udm1
- NRF_IPV4_ADDRESS=192.168.60.130
- NRF_FQDN=oai-nrf1
depends_on:
- oai-udm1
networks:
public_net1:
ipv4_address: 192.168.60.138
oai-nrf1:
container_name: "oai-nrf1"
image: oaisoftwarealliance/oai-nrf:1.5.1
environment:
- TZ=Europe/Paris
- NRF_INTERFACE_NAME_FOR_SBI=eth0
networks:
public_net1:
ipv4_address: 192.168.60.130
oai-amf1:
container_name: "oai-amf1"
image: oaisoftwarealliance/oai-amf:1.5.1
environment:
- TZ=Europe/paris
- MCC=208
- MNC=95
- REGION_ID=128
- AMF_SET_ID=1
- SERVED_GUAMI_MCC_0=208
- SERVED_GUAMI_MNC_0=95
- SERVED_GUAMI_REGION_ID_0=128
- SERVED_GUAMI_AMF_SET_ID_0=1
- SERVED_GUAMI_MCC_1=460
- SERVED_GUAMI_MNC_1=11
- SERVED_GUAMI_REGION_ID_1=10
- SERVED_GUAMI_AMF_SET_ID_1=1
- PLMN_SUPPORT_MCC=208
- PLMN_SUPPORT_MNC=95
- PLMN_SUPPORT_TAC=0xa000
# Slice 0 (222, 123)
- SST_0=222
- SD_0=123
# Slice 0 (128, 12)
- SST_1=128
- SD_1=12
- AMF_INTERFACE_NAME_FOR_NGAP=eth0
- AMF_INTERFACE_NAME_FOR_N11=eth0
# One single SMF instance
- SMF_INSTANCE_ID_0=1
- SMF_FQDN_0=oai-smf1
- SMF_IPV4_ADDR_0=192.168.60.133
- SELECTED_0=true
- NF_REGISTRATION=yes
- SMF_SELECTION=yes
- USE_FQDN_DNS=yes
- EXTERNAL_AUSF=yes
- EXTERNAL_UDM=no
- EXTERNAL_NSSF=no
- NRF_IPV4_ADDRESS=192.168.60.130
- NRF_FQDN=oai-nrf1
- AUSF_IPV4_ADDRESS=192.168.60.138
- AUSF_FQDN=oai-ausf1
- UDM_IPV4_ADDRESS=192.168.60.137
- UDM_FQDN=oai-udm1
- INT_ALGO_LIST=[ "NIA1" , "NIA2"]
- CIPH_ALGO_LIST=[ "NEA1" , "NEA2"]
depends_on:
- mysql1
- vpp-upf1
- oai-ext-dn1
- oai-ausf1
networks:
public_net1:
ipv4_address: 192.168.60.132
oai-smf1:
container_name: "oai-smf1"
image: oaisoftwarealliance/oai-smf:1.5.1
environment:
- TZ=Europe/Paris
- SMF_INTERFACE_NAME_FOR_N4=eth0
- SMF_INTERFACE_NAME_FOR_SBI=eth0
- DEFAULT_DNS_IPV4_ADDRESS=172.21.3.100
- DEFAULT_DNS_SEC_IPV4_ADDRESS=8.8.8.8
- AMF_IPV4_ADDRESS=192.168.60.132
- AMF_FQDN=oai-amf1
- UDM_IPV4_ADDRESS=192.168.60.137
- UDM_FQDN=oai-udm1
- UPF_IPV4_ADDRESS=192.168.70.201
- UPF_FQDN_0=vpp-upf.node.5gcn.mnc95.mcc208.3gppnetwork.org
- NRF_IPV4_ADDRESS=192.168.60.130
- NRF_FQDN=oai-nrf1
- DEFAULT_CSCF_IPV4_ADDRESS=127.0.0.1 # only needed when ims is being used
- USE_LOCAL_SUBSCRIPTION_INFO=yes #Set to yes if SMF uses local subscription information instead of from an UDM
- REGISTER_NRF=yes
- DISCOVER_UPF=yes
- USE_FQDN_DNS=yes
- USE_NETWORK_INSTANCE=yes
- ENABLE_USAGE_REPORTING=yes
# Slice 0 (1, 0xFFFFFF)
- DNN_NI0=oai
- TYPE0=IPv4
- DNN_RANGE0=12.1.1.151 - 12.1.1.253
- NSSAI_SST0=1
- SESSION_AMBR_UL0=200Mbps
- SESSION_AMBR_DL0=400Mbps
# Slice 1 (1, 1)
- DNN_NI1=oai.ipv4
- TYPE1=IPv4
- DNN_RANGE1=12.1.1.51 - 12.1.1.150
- NSSAI_SST1=1
- NSSAI_SD1=1
- SESSION_AMBR_UL1=100Mbps
- SESSION_AMBR_DL1=200Mbps
# Slice 2 (222, 123)
- DNN_NI2=default
- TYPE2=IPv4
- DNN_RANGE2=12.1.1.2 - 12.1.1.50
- NSSAI_SST2=222
- NSSAI_SD2=123
- SESSION_AMBR_UL2=50Mbps
- SESSION_AMBR_DL2=100Mbps
# Slice 3 for ims
- DNN_NI3=ims
- TYPE3=IPv4v6
- DNN_RANGE3=14.1.1.2 - 14.1.1.253
extra_hosts:
- "vpp-upf.node.5gcn.mnc95.mcc208.3gppnetwork.org:192.168.60.201"
depends_on:
- oai-amf1
networks:
public_net1:
ipv4_address: 192.168.60.133
vpp-upf1:
privileged: true
container_name: "vpp-upf1"
image: oaisoftwarealliance/oai-upf-vpp:1.5.1
environment:
- IF_1_IP=192.168.60.201
- IF_1_TYPE=N4
- IF_2_IP=192.168.62.201
- IF_2_TYPE=N3
- IF_2_NWI=access.oai.org
- IF_3_IP=192.168.63.201
- IF_3_TYPE=N6
- IF_3_IP_REMOTE=192.168.63.135 # EXT-DN IP Address
- IF_3_NWI=internet.oai.org
- NAME=VPP-UPF
- MNC=95
- MCC=208
- REALM=3gppnetwork.org
- VPP_MAIN_CORE=0
- VPP_CORE_WORKER=1
# - VPP_PLUGIN_PATH=/usr/lib64/vpp_plugins/ # RHEL7
- VPP_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/vpp_plugins/ # Ubntu18.04
- SNSSAI_SD=123
- SNSSAI_SST=222
- DNN=default
- REGISTER_NRF=yes
- NRF_IP_ADDR=192.168.60.130
- NRF_PORT=80
- HTTP_VERSION=1
depends_on:
- oai-nrf1
healthcheck:
test: /bin/bash -c "pgrep vpp"
interval: 10s
timeout: 5s
retries: 5
networks:
public_net1:
ipv4_address: 192.168.60.134
public_net_access1:
ipv4_address: 192.168.62.134
public_net_core1:
ipv4_address: 192.168.63.134
oai-ext-dn1:
privileged: true
init: true
container_name: "oai-ext-dn1"
image: oaisoftwarealliance/trf-gen-cn5g:1.5.1
entrypoint: /bin/bash -c \
"iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\
"ip route add 12.1.1.0/24 via 192.168.63.201 dev eth0; ip route; sleep infinity"
command: ["/bin/bash", "-c", "trap : SIGTERM SIGINT; sleep infinity & wait"]
healthcheck:
test: /bin/bash -c "iptables -L -t nat | grep MASQUERADE"
interval: 10s
timeout: 5s
retries: 5
networks:
public_net_core1:
ipv4_address: 192.168.63.135
networks:
public_net:
driver: bridge
name: demo-oai-public-net
ipam:
config:
- subnet: 192.168.70.0/24
driver_opts:
com.docker.network.bridge.name: "demo-oai"
public_net_access:
name: oai-public-access
ipam:
config:
- subnet: 192.168.72.0/24
driver_opts:
com.docker.network.bridge.name: "cn5g-access"
public_net_core:
name: oai-public-core
ipam:
config:
- subnet: 192.168.73.0/24
driver_opts:
com.docker.network.bridge.name: "cn5g-core"
public_net1:
driver: bridge
name: demo-oai-public-net1
ipam:
config:
- subnet: 192.168.60.0/24
driver_opts:
com.docker.network.bridge.name: "demo-oai1"
public_net_access1:
name: oai-public-access1
ipam:
config:
- subnet: 192.168.62.0/24
driver_opts:
com.docker.network.bridge.name: "cn5g-access1"
public_net_core1:
name: oai-public-core1
ipam:
config:
- subnet: 192.168.63.0/24
driver_opts:
com.docker.network.bridge.name: "cn5g-core1"
启动核心网,如下图可见成功启动了两组网元
如下图可见成功启动了两组网桥
让容器不后台运行,发现两组核心网都在工作
2.1.2关闭核心网
使用原来的核心网关闭脚本发现只能关闭原来的网桥及网元,新建的网元及网桥未能关闭,因此需要重新编辑关闭脚本
可以暂时使用关闭所有容器的方法
docker stop $(docker ps -a -q)