Docker网络是一种用于容器之间通信的技术,它可以让容器之间的通信更加安全、可靠。在创建一个docker网络之前,我们需要先了解docker的几个概念:
1. Docker引擎:Docker引擎是一个用于创建、运行、部署和管理容器的开源软件。 2. Docker容器:Docker容器是一个独立运行的应用,可以在不同的服务器上运行。 3. Docker镜像:Docker镜像是一个只读文件,由多个文件或目录组成,用于创建Docker容Docker实例:创建一个点到点连接
默认情况下,Docker 会将所有容器连接到由
docker0
提供的虚拟子网中。用户有时候需要两个容器之间可以直连通信,而不用通过主机网桥进行桥接。
解决办法很简单:创建一对
peer
接口,分别放到两个容器中,配置成点到点链路类型即可。首先启动 2 个容器:
$ sudo docker run -i -t --rm --net=none base /bin/bash root@1f1f4c1f931a:/# $ sudo docker run -i -t --rm --net=none base /bin/bash root@12e343489d2f:/#
找到进程号,然后创建网络名字空间的跟踪文件。
$ sudo docker inspect -f "{{.State.Pid}}" 1f1f4c1f931a 2989 $ sudo docker inspect -f "{{.State.Pid}}" 12e343489d2f 3004 $ sudo mkdir -p /var/run/netns $ sudo ln -s /proc/2989/ns/net /var/run/netns/2989 $ sudo ln -s /proc/3004/ns/net /var/run/netns/3004
创建一对
peer
接口,然后配置路由$ sudo ip link add A type veth peer name B $ sudo ip link set A netns 2989 $ sudo ip netns exec 2989 ip addr add 10.1.1.1/32 dev A $ sudo ip netns exec 2989 ip link set A up $ sudo ip netns exec 2989 ip route add 10.1.1.2/32 dev A $ sudo ip link set B netns 3004 $ sudo ip netns exec 3004 ip addr add 10.1.1.2/32 dev B $ sudo ip netns exec 3004 ip link set B up $ sudo ip netns exec 3004 ip route add 10.1.1.1/32 dev B
现在这 2 个容器就可以相互 ping 通,并成功建立连接。点到点链路不需要子网和子网掩码。
此外,也可以不指定
--net=none
来创建点到点链路。这样容器还可以通过原先的网络来通信。利用类似的办法,可以创建一个只跟主机通信的容器。但是一般情况下,更推荐使用
--icc=false
来关闭容器之间的通信。
使用 Rail 入门 Fig我们现在将使用 Fig 配置并运行一个 Rails/PostgreSQL 应用。在开始之前,先确保 Fig 已经 安装。在一切工作...
为kubelet配置证书轮换本文展示如何在kubelet中启用并配置证书轮换。特性状态:Kubernetesv1.19[stable]在开始之前要求Kubernete...
使用SC安装服务目录服务目录(ServiceCatalog)是服务目录是一种扩展API,它能让Kubernetes集群中运行的应用易于使用外部托管的...
使用AppArmor限制容器对资源的访问特性状态:Kubernetesv1.4[beta]AppArmor是一个Linux内核安全模块,它补充了基于标准Linux用户...
示例:使用Redis部署PHP留言板应用程序本教程向你展示如何使用Kubernetes和Docker构建和部署一个简单的(非面向生产的)多层web应...
Docker info 命令Docker 命令大全docker info : 显示 Docker 系统信息,包括镜像和容器数。。语法docker info [OPTIONS]实例查看...
Docker 支持以下的 Ubuntu 版本:Ubuntu Precise 12.04 (LTS)Ubuntu Trusty 14.04 (LTS)Ubuntu Wily 15.10其他更新的版本…… 前...
方法一、通过 Dockerfile构建创建Dockerfile首先,创建目录mysql,用于存放后面的相关东西。@:~$ mkdir -p ~/mysql/data ~/mysql/...
Docker 客户端docker客户端非常简单,我们可以直接输入docker命令来查看到 Docker 客户端的所有命令选项。@:~# docker可以通过命...
1 创建带有监控属性的view modelObservablesKnockout是在下面三个核心功能是建立起来的:监控属性(Observables)和依赖...