docker学习一docker容器镜像打包以及创建网络

1. docker 将容器导出

为了将容器迁移到其他的地方运行,可以将容器导出,

docker export container_name/container_id > service_name.tar.gz 

拷贝到其他的机器后,可以导入该容器:

cat service_name.tar.gz|docker import - container_name:tag

2. docker 镜像导入导出

镜像保存,迁移到其他地方

docker save image_name | gzip images_name.tar.gz 

当拷贝到其他的地方后,导入方式如下:

docker load -i image_name.tar.gz

3. 两者区别

容器导入导出会丢失元数据和历史层,无法通过docker tag [layer_id] [image_name]进行回滚,而镜像的方式可以

4. docker创建网络

docker创建的网络类似于一个交换机,连接到此网络的容器可以相互通信

Create a network
 
Options:
      --aux-address value    Auxiliary IPv4 or IPv6 addresses used by Network
                             driver (default map[])
  -d, --driver string        Driver to manage the Network (default "bridge")
      --gateway value        IPv4 or IPv6 Gateway for the master subnet (default [])
      --help                 Print usage
      --internal             Restrict external access to the network
      --ip-range value       Allocate container ip from a sub-range (default [])
      --ipam-driver string   IP Address Management Driver (default "default")
      --ipam-opt value       Set IPAM driver specific options (default map[])
      --ipv6                 Enable IPv6 networking
      --label value          Set metadata on a network (default [])
  -o, --opt value            Set driver specific options (default map[])
      --subnet value         Subnet in CIDR format that represents a
                             network segment (default [])

以在单机环境搭建bgp网络协议为例,网络拓扑如下:

首先新建三个网络,指定网段和网关:

docker network create [-d bridge]  - -subnet=10.10.0.1/24 - -gateway=10.10.0.1 net 
docker network create [-d bridge]  - - subnet=10.0.10.1/24 - -gateway=10.0.10.1 net1
docker network create [-d bridge]  --subnet=10.0.11.1/24 –gateway=10.0.11.1 net2

启动两个容器:

docker run –d - - name Quagga_a  --network=net1 [ -- ip 10.0.10.x] cumulusnetworks/quagga:latest     #可以指定该网段的任意IP
docker run –d - - name Quagga_b  --network=net2 [ -- ip 10.0.11.x] cumulusnetworks/quagga:latest

分别进行容器,配置bgp:

docker exec –it quagga_a bash   # 已进入容器a
vtysh   # 进入配置终端
configure t 
router bgp 100 
neighbor 10.10.0.3 remote-as 200
network 10.0.10.1/24    #此处的网络前缀是指AS=100的网络前缀
exit 
exit 
write                   # 保存配置
show ip bgp summary     

容器b的配置类似

此时net1和net2可以通过bgp进行通信

猜你喜欢

转载自blog.csdn.net/zhongyoubing/article/details/82183455