Docker中的网络与数据管理

    xiaoxiao2025-06-25  24

    Docker中的网络与数据管理

    docker网络管理

    Docker默认使用bridge(单主机互联)和overlay(可跨主机互联)两种网络驱动来进行容器的网络管理。 在进行docker安装时,docker就会自动创建三种网络。在客户端=可以查看。命令如下:

    $docker network ls

    1.下面通过一个示例来演示默认bridge网络管理方式,执行过程如下: 1).创建并启动容器: $docker run -itd --name=networktest ubuntu 2) .查看网络详情: $docker network inspect bridge

    注:在docker swarm集群环境下,除三种默认网络外,docker还提供了docker_gwbridge和ingress两种默认网络。 2.自定义网络。 1).创建自定义网络. $docker network create --driver bridge isolated_nw 2).使用自定义网络启动容器。 $docker run --network=isolated_nw -itd --name=nwtest busybox 3).为网络添加管理。 $docker network connect bridge nwtest 4).断开容器网络链接。 $docker network disconnect isolated_nw nwtest 5).移除自定义网络。 $docker network rm isolated_nw 3.容器之间的网络通信。 1).创建容器container1和container2。 $docker run -itd --name=container1 busybox $docker run -itd --name=container2 busybox 2).创建一个使用自定义网络的容器container3。 $ docker run --network=isolated_nw -itd --name=container3 busybox 3).为container2容器新增一个自定义的网络连接。 $ docker network connect isolated_nw container2 4).容器地址查看。 $docker attach container2 5).容器通信测试: 默认网络下使用–link参数通过容器名称进行通信:

    docker swarm 集群

    上面对docker自定义网络进行了演示,其中提到了另一种网络overlay必须在docker swarm集群环境下才能使用,下面针对docker swarm集群进行演示。

    环境搭建。 准备三台安装docker的Ubuntu主机,要求docker版本1.2以上,旧版本不支持集群;修改三台主机名,分别为manage、work1、work2.

    .创建docker swarm集群。 1). 在manage主机上创建docker swarm集群,操作指令如下: 2).在管理节点上查看集群节点信息。 $docker node ls

    向docker swarm集群添加工作节点。 1).启动另外两台主机,向集群中加入工作节点,指令如下。 2).查看集群信息。 $docker node ls

    向docker swarm集群部署服务。 $ docker service create --replicas 1 --name=helloworld alpine ping docker.com 注: .docker service create :用于创建一个基于Alpine镜像的服务。 .–replicas:指定了此服务只有一个副本实例。 .–name:服务名称。 .ping docker.com:表示服务启动后执行的命令。

    查看docker swarm集群中的服务。 1).查看集群中服务列表信息。 2).查看服务详情。 3).查看服务在集群节点上的分配和运行情况。 $ docker service ps hellonx

    更改docker swarm集群服务副本数量,在manage节点上使用以下命令。

    删除服务。

    访问服务。 1).在manage节点上执行以下命令查看网络列表。 2).在manage节点上创建一overlay为驱动的自定义网络。 $docker network create \--driver overlay \my-multi-host-network 3).在manage节点上再次部署服务。 $ docker service create \--network my-multi-host-network \--name my-web \--publish 8080:80 \--replicas 2 \nginx 4).在manage节点上,使用指令查看服务副本运行情况。 $docker service ps my-web 5).外界访问服务。

    docker 数据管理

    docker镜像是通过读取dockerfile文件中的指令构建的,dockerfile的每条指令都会创建一个镜像层,并且每层都是只读的,这一系列镜像层就构建成了docker镜像。 docker中的数据都是存放在容器层的,这样存储有较多的缺陷。为克服这种缺陷,使用另一种叫做docker volume数据外部挂载的机制进行数据管理。 volume数据卷使用。

    创建并管理数据卷。 1).创建数据卷。 2).查看数据卷。 3).核查数据卷。 4) .删除数据卷。 $docker volume rm my-web 2.启动融合器并加载数据卷。 1).查看本机容器和数据卷。 2).确认查看本机docker文件系统中的容器和数据卷。 3).启动容器并挂在数据卷。 $docker run -d -it --name devtest --mount source=nxvol,target=/app busybox:latest 4).再次查看本级容器和数据卷。 $docker ps 5).检查容器详情。 $docker inspect 6) .再次确认本机docker文件系统中的容器和数据卷。
    最新回复(0)