• 给docker容器分配静态ip地址


    给docker容器分配静态ip地址
    原创 这个名字想了很久 最后发布于2017-06-17 14:25:48 阅读数 6460 收藏
    展开

    原文地址,转载请注明出处:http://blog.csdn.net/qq_34021712/article/details/73350738    ©王赛超
    前言:

    docker容器可以认为就是一台虚拟机,一台服务器,外界想要访问这台服务器,肯定要设置一个ip地址,否则无法访问到该容器。

    docker run启动一个container的命令有一个--net的参数用于指定container的网络类型

               docker网络解释参考:https://segmentfault.com/a/1190000000669312
    操作过程:

    docker默认使用'bridge'来设置container的网络模式(即从与docker0同网段的未使用的IP中取一个作为container的IP)

    我们这里使用'none'来实现自己手动配置container的网络

    第一步:安装网桥设备
    yum install -y bridge-utils

    第二步:给宿主机创建网桥
    vi /etc/sysconfig/network-scripts/ifcfg-eno16777736
    将 以前的ip 网关, dns之类的全部注释掉BOOTPROTO=none 然后最后加上BRIDGE=br-ex    br-ex可以随便起

        TYPE=Ethernet
        BOOTPROTO=none
        #BOOTPROTO=static
        DEFROUTE=yes
        IPV4_FAILURE_FATAL=no
        IPV6INIT=yes
        IPV6_AUTOCONF=yes
        IPV6_DEFROUTE=yes
        IPV6_FAILURE_FATAL=no
        NAME=eno0
        UUID=5107e5c5-5e39-4a81-a085-e4ccf9775c4a
        ONBOOT=yes
        #IPADDR=192.168.0.200
        #NETMASK=255.255.255.0
        #PREFIX0=24
        #GATEWAY=192.168.0.254
        #DNS1=114.114.114.114
        #DNS2=114.114.114.115
        HWADDR=00:0C:29:03:1C:C0
        IPV6_PEERDNS=yes
        IPV6_PEERROUTES=yes
        BRIDGE=br-ex

    第三步:设置物理网卡桥接到网桥

    vi /etc/sysconfig/network-scripts/ifcfg-br-ex

        TYPE=Bridge
        BOOTPROTO=static
        IPADDR=192.168.0.200
        NETMASK=255.255.255.0
        GATEWAY=192.168.0.254
        PREFIX=24
        DNS1=114.114.114.114
        DNS2=114.114.114.115
        NAME=br-ex
        ONBOOT=yes
        DEVICE=br-ex

    以上修改即为设置IP,设置完毕可以通过命令service network restart重启网络

    使用 brctl show查看
    [root@bogon ~]# brctl show
    bridge name     bridge id               STP enabled     interfaces
    br-ex           8000.000c29031cc0       no              eno16777736
    docker0         8000.024233eb8bc4       no

    第四步:启动docker容器并指定网络模式为none
    查看镜像
    [root@bogon ~]# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    docker.io/centos    latest              3bee3060bfc8        8 days ago          192.5 MB

    注意:使用镜像 启动一个容器 设置网络模式为none
    docker run -i -d --net=none --name javadocker -v /usr/local/software/:/mnt/software/ 3bee3060bfc8 /bin/bash

    第五步:获取pipework可执行程序

    ①如果未安装wget使用以下命令安装(安装可以忽略)
    yum -y install wget

    ②如果未安装 zip解压使用以下命令安装(安装可以忽略)
    yum install -y unzip zip

    ③安装pipework
    # wget https://github.com/jpetazzo/pipework/archive/master.zip
    # unzip master.zip
    # cp pipework-master/pipework  /usr/local/bin/
    # chmod +x /usr/local/bin/pipework
    如果无法wget获取,点此处下载

    第六步:使用pipework给docker容器分配ip

    pipework 网桥 容器名称 ip@网关

    pipework br-ex javadocker 192.168.0.220/24@192.168.0.254

    重启容器后需要再次指定。

    第七步:测试ip是否可用

    [root@bogon util]# ping 192.168.0.220
    PING 192.168.0.220 (192.168.0.220) 56(84) bytes of data.
    64 bytes from 192.168.0.220: icmp_seq=1 ttl=64 time=1.43 ms
    64 bytes from 192.168.0.220: icmp_seq=2 ttl=64 time=0.208 ms
    64 bytes from 192.168.0.220: icmp_seq=3 ttl=64 time=0.755 ms
    64 bytes from 192.168.0.220: icmp_seq=4 ttl=64 time=0.124 ms

    64 bytes from 192.168.0.220: icmp_seq=5 ttl=64 time=0.961 ms

    第八步:进入docker容器,查看ip

    docker exec -it 容器id /bin/bash  如:docker exec -it 6a45948a039e /bin/bash

    centos7之后 已经改为使用ip addr 查看网络情况

    [root@6a45948a039e /]# ip addr
    bash: ip: command not found

    如果报bash: ip: command not found 可能是因为镜像最小安装,没有安装iproute

    解决方法:yum install iproute iproute-doc

    如果想在centos7中使用ipconfig命令,可以安装net-tools

    解决方法:yum install net-tools
    ————————————————
    版权声明:本文为CSDN博主「这个名字想了很久」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_34021712/java/article/details/73350738

  • 相关阅读:
    爬虫1 爬虫介绍, requests模块, 代理(正向代理,反向代理), 爬梨视频, 自动登录网站, HTTP协议复习, 伪静态概念, 301和302状态码区别, http版本0.9 1.1 和2.0的区别
    数据结构 线性结构(数组[列表] ,链表 单链表的增删改查**, 线性结构的应用 队列 栈[函数的调用**]),非线性结构 树
    算法 时间复杂度, 空间复杂度, 冒泡排序**, 选择排序, 插入算法, 快速排序**, 希尔算法,计数排序, 二分法查找**
    量化分析 在线量化分析网站
    数据分析3 matplotlib绘图, 折线图(刻度与范围,标题,注释), 曲线图例, 过滤报警信息, 柱状图, 曲线图, 饼图
    [编织消息框架][netty源码分析]6 ChannelPipeline 实现类DefaultChannelPipeline职责与实现
    [编织消息框架][netty源码分析]5 EventLoopGroup 实现类NioEventLoopGroup职责与实现
    [编织消息框架][netty源码分析]4 EventLoop 实现类NioEventLoop职责与实现
    编程之路
    [编织消息框架][netty源码分析]3 EventLoop 实现类SingleThreadEventLoop职责与实现
  • 原文地址:https://www.cnblogs.com/kofsony/p/12652209.html
Copyright © 2020-2023  润新知