Docker容器启动后,默认会在主机上分配一个网卡,该网卡对应一个网络命名空间,并在这个网络命名空间下随机分配一个IP地址。
如果想修改Docker容器的IP地址,有以下几种方法:
1. 修改Docker宿主机的Docker网络
可以在Docker主机上修改`/etc/docker/daemon.json`文件,添加如下内容:
```bash
{
"bip": "192.168.1.5/24",
}
```
这会将Docker容器分配IP的子网修改为`192.168.1.0/24`,并且默认网关设置为`192.168.1.1`。
重启Docker后生效,此后创建的容器会在此子网分配IP。
2. 启动容器时指定IP
使用`--ip`参数可以指定容器的IP地址:
```bash
docker run -it --ip 192.168.1.10 ubuntu:18.04
```
这会强制分配`192.168.1.10`这个IP给新启动的容器。
3. 启动容器后修改IP
可以在启动容器后,直接修改容器内的网络配置来变更IP地址。
首先,要定位到容器的网络命名空间。可以使用:
```bash
docker inspect 容器id|name # 查看"NetworkSettings"下的"SandboxKey"值
```
然后使用`ip netns exec`命令进入该网络命名空间:
```bash
sudo ip netns exec 沙盒KEY /bin/bash
```
在该命名空间下修改网络配置即可。例如:
```bash
ip addr add 192.168.1.15/24 dev eth0
ip link set eth0 up
```
这会将eth0网卡的IP设置为`192.168.1.15`。
退出后容器的IP就已经修改。
需要注意,如果容器已经把旧IP写入到其它容器或者宿主机的配置(例如`/etc/resolv.conf`)中,那么还需要相应修改那些地方的配置,否则可能出现网络异常的情况。
以上是修改Docker容器IP地址的几种常用方法。根据实际场景选择适用的方案即可。
- 写在前面
- linux命令行
- 基础篇
- 1.SSH连接工具
- 2.查看系统版本信息
- 3.查看IP地址
- 4.查看cpu信息
- 5.查看内存磁盘信息
- 6.文件上传下载
- 7.linux中查找文件(find)
- 8.修改root账号密码
- 9.通过进程号查看端口
- 10.校验MD5值
- 11.Linux命令之seq
- 12.Linux命令之corntab
- 13.linux命令之awk
- 进阶篇
- 查看防火墙是否开启
- linux创建新的用户
- 更改文件的用户组
- 查找JAVA_HOME路径
- Linux主机时间同步
- 高CPU排查-个人总结
- Linux查看GPU性能
- 文件排序工具sort
- sed
- grep
- 实战篇
- 1.Linux基线
- 2.iptables学习
- 3.Tcpdump抓包命令
- 4.CentOS7更换镜像源
- shell脚本篇
- 1.Shell脚本速查手册
- 2.Shell中获取取昨天和多天前日期
- 3.rsync删除文件
- 4.nginx自动化安装脚本
- 5.后台启动服务
- 6.备份文件保留5天
- 数据库
- MySQL数据库备份命令
- ES数据库备份
- filebeat工具
- packetbeat工具
- MySQL数据库中删除表
- Docker容器
- 1.安装docker容器
- 2.docker容器的使用
- 3.docker overlay2 是存放什么的
- 4.docker删除已停止的容器
- 5.docker网卡的IP地址修改
- Ubuntu容器下载vim,curl命令
- docker磁盘占用瞬间变大问题解决
- Python学习
- 安装python环境
- Python 把代码编译成pyc文件