Docker桥接网络并远程ssh连接

桥接网络

第一种方法:直接用命令

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 安装网桥管理工具包:bridge-utile
    yum install bridge-utils -y

  2. 查看网桥命令;

    #查看网桥命令
    brctl show
    
  3. 关闭br0;

     #关闭br0
     ifconfig br0 down
    
  4. 使用brctl命令删除网桥br0;

     #使用brctl命令删除网桥br0
     brctl delbr br0
    
  5. 使用brctl命令添加网桥br0;

     #使用brctl命令添加网桥br0
     brctl addbr br0
    
  6. 使用brctl命令将eno1网卡加入到 br0;

     #使用brctl命令将eno1网卡加入到 br0
     brctl addif br0 eno1
    
  7. 添加默认IP;

     #添加默认IP
     ifconfig br0 192.168.2.256/24
    
  8. 添加默认路由;

     #添加默认路由
     ifconfig eno1 0.0.0.0
    
  9. 在添加默认网关;

     #在添加默认网关
     route add default gw 192.168.2.1
    
  10. 重启network服务;

     #重启network
     systemctl restart network
    
  11. 测试是否ping的通网关;

     #测试
     ping 192.168.2.1
    

第二种方法:改配置文件

  1. 修改配置文件vim /etc/sysconfig/network-scripts/ifcfg-eno1;

     TYPE=Ethernet #需要修改
     PROXY_METHOD=none
     BROWSER_ONLY=no
     BOOTPROTO=none #需要修改
     DEFROUTE=yes
     IPV4_FAILURE_FATAL=no
     IPV6INIT=no
     IPV6_AUTOCONF=yes
     IPV6_DEFROUTE=yes
     IPV6_FAILURE_FATAL=no
     IPV6_ADDR_GEN_MODE=stable-privacy
     NAME=eno1 #这儿保持你的主网卡名称
     UUID=f9f621e3-7e37-4d99-919a-3e19f8045186
     DEVICE=eno1 #这儿保持你的主网卡名称
     ONBOOT=yes #需要修改
     BRIDGE=br0 #修改成新建的虚拟网卡名称
    
    
  2. 添加br0配置文件vim /etc/sysconfig/network-scripts/ifcfg-br0;

     DEVICE=br0
     TYPE=Bridge
     BOOTPROTO=static
     ONBOOT=yes
     IPADDR=192.168.2.200
     NETMASK=255.255.255.0
     GATEWAY=192.168.2.1
    
  3. 重启network服务;

     #重启network
     systemctl restart network
    

安装pipework

  1. 如果机器上没有安装git先安装git ;

     yum -y install git
    
  2. clone pipework到当前目录下;

     git clone https://github.com/jpetazzo/pipework.git
    
  3. 把pipework拷贝到bin目录下;

     cp -rp pipework/pipework /usr/local/bin/
    
  4. pipework安装完成;

启动docker容器

  1. 启动docker;
     docker run  -itd  -v /etc/localtime:/etc/localtime --privileged --network=none --name testos centos:7 usr/sbin/init
     #如果报错:
     /usr/bin/docker-current: Error response from daemon: oci runtime error: container_linux.go:235: starting container process caused "exec: \"/usr/sbin/init\": stat /usr/sbin/init: no such file or directory".
     #命令最后改为:/sbin/init
      docker run  -itd  -v /etc/localtime:/etc/localtime --privileged --network=none --name testos centos:7 /sbin/init
    
    PS:需要注意的是–privileged参数获取宿主机root权限(特殊权限)不然不能安装ssh
  2. 为docker容器设置IP;
     pipework br0 testos 192.168.2.267/24@192.168.2.1
    

最后就是进你的docker容器安装ssh客户端,然后用SSH工具连接你的docker容器啦

  1. 进入容器;

     docker exec -it testos bash
    
  2. 安装ssh;

     yum install sshd  或  yum install openssh-server(由osc网友 火耳提供)
    
  3. 启动sshd;

     systemctl start sshd
    
  4. 开机启动;

     chkconfig sshd on 
     systemctl enable sshd.service
    
  5. 修改ssh配置,让其可以用密码登录;

     vi /etc/ssh/sshd_config
     
     #根据实际情况修改以下配置
      
     # 运行密码登录
     PasswordAuthentication yes
     
     # 运行所有ip地址登录当然可以设定登录IP保证服务器安全
     ListenAddress 0.0.0.0 
     
     # 运行root账号登录因为root是最高权限根据个人使用习惯看开启此功能不基本的配置就完成了其他默认就好.
     PermitRootLogin yes 
    
  6. 添加密码;

     passwd root
    
  7. 最后用SSH工具连接

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值