docker手动配置网络

创建一个没有网络配置的容器

[[email protected] ~]# docker run -i -t --rm --net=none alpine sh
/ #

打开另一个终端
查看容器id

[[email protected] ~]# docker ps -a

查找进程id

[[email protected] ~]# docker inspect -f ‘{{.State.Pid}}‘ 2aefc41dbdeb
9076
[[email protected] ~]# pid=9076

创建命名空间

[[email protected] ~]# mkdir -p /var/run/netns
[[email protected] ~]# ln -s /proc/$pid/ns/net /var/run/netns/$pid

查看桥接网卡的IP 和子网掩码信息

[[email protected] ~]# ip addr show docker0
5: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN
    link/ether 02:42:8e:e7:64:4a brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.1/16 brd 172.18.255.255 scope global docker0
       valid_lft forever preferred_lft forever

创建一对"veth pair"接口A和B

[[email protected] ~]# sudo ip link add A type veth peer name B

绑定A接口到网桥docker0

[[email protected] ~]# sudo brctl addif docker0 A

并启用它

[[email protected] ~]# sudo ip link set A up

将B 接口放到容器的网络命名空间

[[email protected] ~]# sudo ip link set B netns $pid

命名为eth0

[[email protected] ~]# sudo ip netns exec $pid ip link set dev B name eth0

开启网络接口B

[[email protected] ~]# sudo ip netns exec $pid ip link set eth0 up

配置一个可用IP(桥接网段)

[[email protected] ~]# sudo ip netns exec $pid ip addr add 172.18.0.99/16 dev eth0

配置默认网关

[[email protected] ~]# sudo ip netns exec $pid ip route add default via 172.18.0.1

最后回到容器检查一下网卡配置

/ # ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
18: [email protected]: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue state UP qlen 1000
    link/ether 6e:b9:75:8e:f4:99 brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.99/16 scope global eth0
       valid_lft forever preferred_lft forever
/ # ping baidu.com
PING baidu.com (123.125.114.144): 56 data bytes
64 bytes from 123.125.114.144: seq=0 ttl=53 time=2.827 ms
64 bytes from 123.125.114.144: seq=1 ttl=53 time=2.900 ms
^C
--- baidu.com ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 2.827/2.863/2.900 ms

原文地址:https://blog.51cto.com/13670314/2376970

时间: 2024-10-02 03:19:06

docker手动配置网络的相关文章

(1 Linux) 手动配置网络

Linux 手动配置网络 桥接 桥接:桥接模式就是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信.在桥接的作用下,类似于把物理主机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,物理主机也同样插在这个交换机当中,所以所有桥接下的网卡与网卡都是交换模式的,相互可以访问而不干扰.在桥接模式下,虚拟机ip地址需要与主机在同一个网段,如果需要联网,则网关与DNS需要与主机网卡一致.其网络结构如下图所示: 假设目前主机电脑的ip为 192.168.31.199 我们在配置虚拟机网络的

ubuntu 手动配置网络 IP DNS 网关

vim 编辑 /etc/network/interfaces 文件: auto eth0 iface eth0 inet static address 192.168.1.2/24 gateway 192.168.1.1 dns-nameservers 192.168.1.1 原文地址:https://www.cnblogs.com/devIT/p/10126754.html

Docker 网络之pipework 工具(2)将Docker容器配置到本地网络环境中

为了使本地网络中的机器和Docker容器更方便的通信,我们经常会有将Docker容器配置到和主机同一网段的需求.这个需求其实很容易实现,我们只要将Docker容器和主机的网卡桥接起来,再给Docker容器配上IP就可以了.下面我们来操作一下,我主机A地址为192.168.1.107/24,网关为192.168.1.1,需要给Docker容器的地址配置为192.168.1.150/24.在主机A上做如下操作:安装pipework下载地址:wgethttps://github.com/jpetazz

Docker Network 配置,自定义bridge网络

                    Docker Network 配置,自定义bridge网络      1.停止服务     service docker stop   2.关掉docker0     ifconfig docker0 down   3.删除docker     brctl delbr docker0   4.增加网桥br500     yum install bridge-utils       2, 网络配置     [[email protected] network

docker系列之网络配置

docker 网络配置 docker 安装后, 会自动在系统做一个网桥配置 docker0 . 其容器都会分配到此网桥配置下的独立, 私有 IP 地址. 如果你要自己配置桥接, 也可以把 docker0 删除掉. docker run 的时候使用参数 -b 指定你自己配置的网桥. docker 容器的网络, 是相对于实体机的私有网络. 在网桥配置下, 只要知道 IP 地址, 各容器, 及实体机本身都可以自由通信. 但是在实体机的网卡网络下, docker 容器就不可见了. 要让容器被外界访问到,

docker 设置固定ip、配置网络

Docker安装后,默认会创建下面三种网络类型 $ docker network ls NETWORK ID NAME DRIVER SCOPE 9781b1f585ae bridge bridge local 1252da701e55 host host local 237ea3d5cfbf none null local 启动 Docker的时候,用 --network 参数,可以指定网络类型 docker run -itd --name test1 --network bridge --i

Docker扁平化网络设计与实现的方法步骤详解

研发背景 众所周知,Docker容器跨主机互访一直是一个问题,Docker官方为了避免网络上带来的诸多麻烦,故将跨主机网络开了比较大的口子,而由用户自己去实现.目前Docker跨主机的网络实现方案也有很多种,主要包括端口映射.ovs. fannel等. 但是这些方案都无法满足我们的需求:端口映射服务内的内网IP会映射成外网的IP,这样会给开发带来困惑,因为他们往往在跨网络交互时是不需要内网IP的:而ovs与fannel则是在基础网络协议上又包装了一层自定义协议,这样当网络流量大时,却又无端的增加

Docker 镜像及Docker仓库配置 [四]

Docker 镜像及Docker仓库配置 [四] Docker 时间:2016年11月8日15:45:20 一.Docker 镜像介绍 Docker镜像构建分为两种,一种是手动构建,另一种是Dockerfile(自动构建) Docker镜像手动构建案例: 我们基于centos镜像进行构建,制作nginx镜像 [[email protected] ~]# docker run --name abcdocker -it centos[[email protected] /]# yum install

docker之容器网络篇

一.docker网络模式 Docker支持五种网络模式:A.bridge--net=bridge默认网络,Docker启动后创建一个docker0网桥,默认创建的容器也是添加到这个网桥中.B.host--net=host容器不会获得一个独立的network namespace,而是与宿主机共用一个.这就意味着容器不会有自己的网卡信息,而是使用宿主机的.容器除了网络,其他都是隔离的.C.none--net=none获取独立的network namespace,但不为容器进行任何网络配置,需要我们手