用户自定义网络

用户自定义网络

使用yum安装docker容器

# yum -y install docker-io

启动docker容器服务

#systemctl start docker

查看当前docker状态

#docker images

上传一个镜像 postgres.tar

将镜像上传docker容器

# docker load -i postgres.tar

用户使用--net=none后,可以自行配置网络,让容器达到跟平常一样具有访问网络的权限。通过这个过程,可以了解Docker配置网络的细节。

1 首先,启动一个/bin/bash容器,指定--net=none参数。

#docker run -i -t --rm --net=none  training/postgres  /bin/bash

root@f2e2db7aaeba:/#

2 重新打开一个远程连接在本地主机查找容器的进程id,并为它创建网络命名空间。

#docker ps -a   //用于查找docker容器的name

#docker inspect -f '{{.State.Pid}}' f2e2db7aaeba

2874

# pid= 2874

#mkdir -p /var/run/netns

# ln -s /proc/$pid/ns/net /var/run/netns/$pid

3 检查桥接网卡的IP和子网掩码信息。

# ip addr show docker0

4: docker0: ...

inet 172.17.42.1/16 scope global docker0

4 创建一对veth pair接口A和B,绑定A到网桥docker0,并启用它。

# ip link add A type veth peer name B

# brctl addif docker0 A

#ip link set A up

#ip  add

查看到A@B当前的状态是UP

5 将B放到容器的网络命名空间,命名为eth0,启动它并配置一个可用IP(桥接网段)和默认网关。

# ip link set B netns $pid

# ip netns exec $pid ip link set dev B name eth0

# ip netns exec $pid ip link set eth0 up

# ip netns exec $pid ip addr add 172.17.42.99/16 dev eth0

# ip netns exec $pid ip route add default via 172.17.42.1

以上,就是Docker配置网络的具体过程。

查看更改后的容器IP。

root@82e245cf72c1:/usr/src/ghost# ip a             

……

8: eth0@if9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000

    link/ether 96:5f:8d:31:cc:3b brd ff:ff:ff:ff:ff:ff

    inet 172.17.42.99/16 scope global eth0

       valid_lft forever preferred_lft forever

    inet6 fe80::945f:8dff:fe31:cc3b/64 scope link

       valid_lft forever preferred_lft forever

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值