Docker桥接并远程ssh连接
桥接网络
第一种方法:直接用命令
我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:
-
安装网桥管理工具包:bridge-utile;
yum install bridge-utils -y
-
查看网桥命令;
#查看网桥命令 brctl show
-
关闭br0;
#关闭br0 ifconfig br0 down
-
使用brctl命令删除网桥br0;
#使用brctl命令删除网桥br0 brctl delbr br0
-
使用brctl命令添加网桥br0;
#使用brctl命令添加网桥br0 brctl addbr br0
-
使用brctl命令将eno1网卡加入到 br0;
#使用brctl命令将eno1网卡加入到 br0 brctl addif br0 eno1
-
添加默认IP;
#添加默认IP ifconfig br0 192.168.2.256/24
-
添加默认路由;
#添加默认路由 ifconfig eno1 0.0.0.0
-
在添加默认网关;
#在添加默认网关 route add default gw 192.168.2.1
-
重启network服务;
#重启network systemctl restart network
-
测试是否ping的通网关;
#测试 ping 192.168.2.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 #修改成新建的虚拟网卡名称
-
添加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
-
重启network服务;
#重启network systemctl restart network
安装pipework
-
如果机器上没有安装git先安装git ;
yum -y install git
-
clone pipework到当前目录下;
git clone https://github.com/jpetazzo/pipework.git
-
把pipework拷贝到bin目录下;
cp -rp pipework/pipework /usr/local/bin/
-
pipework安装完成;
启动docker容器
- 启动docker;
PS:需要注意的是–privileged参数获取宿主机root权限(特殊权限)不然不能安装sshdocker 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
- 为docker容器设置IP;
pipework br0 testos 192.168.2.267/24@192.168.2.1
最后就是进你的docker容器安装ssh客户端,然后用SSH工具连接你的docker容器啦
-
进入容器;
docker exec -it testos bash
-
安装ssh;
yum install sshd 或 yum install openssh-server(由osc网友 火耳提供)
-
启动sshd;
systemctl start sshd
-
开机启动;
chkconfig sshd on systemctl enable sshd.service
-
修改ssh配置,让其可以用密码登录;
vi /etc/ssh/sshd_config #根据实际情况修改以下配置 # 运行密码登录 PasswordAuthentication yes # 运行所有ip地址登录当然可以设定登录IP保证服务器安全 ListenAddress 0.0.0.0 # 运行root账号登录因为root是最高权限根据个人使用习惯看开启此功能不基本的配置就完成了其他默认就好. PermitRootLogin yes
-
添加密码;
passwd root
-
最后用SSH工具连接