使Docker容器拥有可被宿主机以外的机器直接访问的独立IP
我们常用的docker容器都是将ip端口映射到宿主机,通过宿主机IP进行访问。外部无法直接访问容器IP,下面简单介绍下怎么做到局域网内直接访问docker容器IP。
自动化脚本见 https://github.com/liwei128/my_pipework.git,一键运行,so easy
说明如下
一、准备工作
1.首先安装pipework
下载:gitHub地址 https://github.com/jpetazzo/pipework.git
文件上传用sftp方式连接,put进行上传
将pipework文件复制到/usr/bin/目录下,并设置为可执行脚本
cp pipework /usr/bin/
chmod +x /usr/bin/pipework
2.查询我们的网卡名、网卡ip、以及默认网关,后面需要用到
我的为ens33 172.16.3.217 172.163.3.1
二、开始设置IP
注意:此步骤可能会断开与宿主机的连接,因为网卡ens33的ip发生了变化,建议写成脚本文件.sh的形式执行
1. 删除ens33上面的ip地址
sudo ip addr del dev ens33 172.16.3.217/24
2. 新建网桥br0,并将ens33网卡桥接到br0
sudo ip link add link ens33 dev br0 type macvlan mode bridge
3.给网桥br0设置ip (为原ens33上的ip)
sudo ip addr add 172.16.3.217/24 dev br0
4.启用br0
sudo ip link set dev br0 up
5.给br0设置默认网关(为上面查询到的默认网关),不然无法访问
sudo ip route add default via 172.16.3.1 dev br0
6.为docker容器指定IP地址
sudo pipework br0 cmv3-manager 172.16.3.251/24@172.16.3.1
sudo pipework br0 cmv3-mysql 172.16.3.253/24@172.16.3.1
说明:br0是第3步新建的网桥名,cmv3-manager和cmv3-mysql是docker容器名,@前面表示你要为该容器设置的IP地 址,@后面为网关地址
这样就将宿主机网卡以及docker容器接入了同一个网桥br0,实现局域网访问容器ip。效果如下
三、回滚方案
如果你需要还原成原有的IP配置,只需要这样:
sudo ip link delete br0
sudo service network restart
sudo systemctl restart docker
注意:此步骤可能会断开与宿主机的连接,因为网桥br0被删除了,建议写成脚本文件.sh的形式执行
---------------------
作者:liwei128
来源:CSDN
原文:https://blog.csdn.net/liwei128/article/details/79668612
版权声明:本文为博主原创文章,转载请附上博文链接!
使Docker容器拥有可被宿主机以外的机器直接访问的独立IP相关推荐
- 解决Docker容器没有权限写入宿主机目录
在应用docker容器的时候,更多的时候我们会把宿主机的目录挂载到docker容器中. 在宿主机的文件夹权限隶属于root时,我们需要将文件夹的权限用户进行 chown 设置,才能保证目录的内容的正常 ...
- docker容器的网络配置,允许docker可以被宿主机以外的其它主机访问以及局域网内可以直接访问docker容器ip
自从Docker容器出现以来,容器的网络通信就一直是被关注的焦点,也是生产环境的迫切需求.容器的网络通信又可以分为两大方面:单主机容器上的相互通信,和跨主机的容器相互通信. 一.端口映射(局域网,外网 ...
- 正在运行的容器目录映射到宿主机的讲解
不想重新 run 容器,但是又必须改目录映射,怎么办? 容器内的目录映射到宿主机上有两种情况,这两种情况无论是哪一种都需要重启docker服务方可生效. 容器目录映射是有两个(hostconfig.j ...
- Docker 使用容器数据卷 实现宿主机与容器共享数据 容器数据持久化
容器数据卷:可以实现宿主机与容器进行共享.容器数据持久化,容器与容器共享数据.可以在run镜像时使用-v参数指定宿主机与容器进行挂载的目录,也可以使用dockerfile的volume指定容器中容器数 ...
- docker部署的mysql调整宿主机映射端口
1.记录mysql容器id 记录docker中mysql的容器id 记录mysql的容器id docker ps关闭docker服务 systemctl stop docker 2.修改配置文件 进入 ...
- 如何使docker容器不退出
运行容器时可以指定其执行什么命令,但是这个命令执行完了,这个容器就自动终止了 所以这个命令执行不会完成,那么容器就不会终止 1. docker run时可以指定/bin/sh -c "whi ...
- DOCKER容器与宿主机同网段互相通信
相关阅读: Docker容器时间与宿主机同步 使用Docker搭建WordPress博客 Docker私有仓库搭建及镜像删除 Docker镜像的导入和导出 在Docker上部署Ambari 博主最近在 ...
- sock 文件方式控制宿主机_浅析Docker运行安全
语法: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 二. Docker 运行安全相关参数 2.1 启用 AppArmor AppArmor 主要的作用是 ...
- docker 连接宿主机的 MySQL
docker 连接宿主机的 MySQL 本文地址:https://blog.lucien.ink/archives/505 在实际生产过程中,docker 内的服务有时需要连接宿主机的 MySQL,在 ...
最新文章
- C# Winform继承窗体打开设计器白屏的一例解决方法
- ASP.NET 5 RC 1:UrlRouting 设置(不包含MVC6的UrlRouting设置)
- 028_vue路由嵌套
- NAACL 2019最佳论文:量子概率驱动的神经网络
- 追踪源码自定义负载均衡策略
- 登录页面跳出框架的JS
- 【转】学会这13个原则写UI界面文案,用户才能秒懂
- 在运行SSIS包时,如何动态更新变量值
- 各类学术评价对象的发展脉络、测度指标与方法
- Python系列之Python-docx生成运行日报Word模板
- 9_林业专题图的制作
- VS2017社区版试用30天过期重新激活方法
- poi导出excel时设置单元格为数字类型(解决:导出Excel时为文本类型选中一整列不能求和问题)
- C语言 计算BMI值,建议体重
- spark driver HA
- USB协议学习笔记 - CUSTOM HID 设备
- 阜城中学2021高考成绩查询,河北省衡水市阜城中学2020-2021学年高二上学期开学考试英语试题...
- chp6面向对象三大特性 题目7 考点:继承、访问修饰符
- RocketMQ报错提示logics disk maybe full soon, so reclaim space, -1.0
- 各种投资产品的整理分析(持续更新)