[Docker]手动配置docker网络
时间:2022-07-22
本文章向大家介绍[Docker]手动配置docker网络,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
本文编写于 205 天前,最后修改于 153 天前,其中某些信息可能已经过时。
1.环境:Centos7 2.运行一个容器
[root@idc ~]# docker run -it --rm --name=mynetwork --net=none centos:latest /bin/bash
#--net=none:docker不对容器进行网络配置,无网络配置
#--rm:容器停止后会清空容器,对容器的设置都将被清除
#容器运行后,再克隆一个会话进行下面的步骤
3.创建容器的网络命名空间
[root@idc ~]# PID=$(docker inspect -f '{{.State.Pid}}' mynetwork)
[root@idc ~]# mkdir -p /var/run/netns
[root@idc ~]# ln -s /proc/$PID/ns/net /var/run/netns/$PID
4.创建一对veth pair接口A和B,绑定A接口到网桥br0并启动它
[root@idc ~]# ip link add A type veth peer name B
[root@idc ~]# brctl addif br0 A
[root@idc ~]# ip link set A up
#如果brctl命令报错,则进行yum安装
#yum install bridge-utils
5.将接口B放到容器的网络命名空间,命名为eth0,并配置ip地址和网关,再启动
[root@idc ~]# ip link set B netns $PID
[root@idc ~]# ip netns exec $PID ip link set dev B name eth0
[root@idc ~]# ip netns exec $PID ip link set eth0 up
[root@idc ~]# ip netns exec $PID ip addr add 172.17.42.100/24 dev eth0
[root@idc ~]# ip netns exec $PID ip route add default via 172.17.42.1
6.到容器中查看ip
[root@3508b096cd89 /]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
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
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
128: eth0@if129: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default
qlen 1000
link/ether 76:29:d9:1f:fd:c1 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.17.42.100/24 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::7429:d9ff:fe1f:fdc1/64 scope link
valid_lft forever preferred_lft forever
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【Hive】Hive 的基本认识
- 《Nacos系列》之注册中心
- 《Nacos系列》之持久化
- 垃圾收集器详解及参数配置
- 《Nacos系列》之安装与启动
- 盘点 | Python自带的那些数据集
- 使用shuttle实现bytom上跨链资产交换
- (三)Mybatis-Plus代码生成器
- 【Code】关于 GCN,我有三种写法
- MySQL允许在唯一索引字段中添加多个NULL值
- [OHIF-Viewers]医疗数字阅片-医学影像-中间插播一下-es6-使用const加箭头函数声明函数相对于function声明函数有什么好处?
- 日志切割工具-Logrotate实现nginx日志切割
- JVM元数据区
- Linux下指定pip install和make install安装路径
- 日志追踪 sentry