一 mac 不能连接docker 内网 ip

首先答案是不可以,官网也说了不行,因为docker无法与mac建立连接,因此他们更推荐通过暴露端口的方式,但是这种访问时往往集群的时候你需要映射很多端口号,特别是大数据组件特别多的时候。

先来看下LINUX的docker架构
Mac OS 安装 VM Docker - 图1
docker是在linux内核容器基础上实现的,linux安装docker后,会创建一个为docker0的虚拟网卡,linux宿机与docker容器之间的通信,通过docker0虚拟网卡进行。

再来看下OSX的docker
Mac OS 安装 VM Docker - 图2
docker在OSX的实现方式,是首先创建一个linux的虚拟机,在将docker放入到虚拟机中实现,而对于linux虚拟机,与OSX之间的通信,目前版本采用/var/run/docker.sock这种socket文件来通信,在OSX宿机中自然ping不通docker容器。

网上也有通过vpn 或者 内部容器Nginx转发,反正要配置一堆东西,而且还要一起软件,不是很香,我更推荐的是vm的方式有三个好处:

  1. docker 本来就需要Linux,即使你不装linux vm,它自己也会虚拟 Linux。
  2. docker 每次拉一堆包出来 如何防止宿主机上不是很灵活,而且还有脏数据,特别是我们做实验,这样做很安全。
  3. 可移植,直接拷贝虚拟机比较方便轻量(我上上周mac电脑坏了,我就拷贝了两个东西一个documents,一个是虚拟机,然后在window10 配置一下就跑起来,真是太香了)。

    二 安装 vm+ centsos7

    推荐Mac 破解版软件地址 https://www.macbl.com/ (符合真香定律)
    下载 centos7 http://mirrors.aliyun.com/centos/7.8.2003/isos/x86_64/

    2.1 mac 安装 fusion vm

2.2 在vm中安装centos7

打开VM,新建虚拟机
Mac OS 安装 VM Docker - 图3

选择创建自定义虚拟机,按继续按钮
Mac OS 安装 VM Docker - 图4

选择CentOS64位(一般情况就下64位的镜像),这一步骤选择取决于你自己下载的镜像的具体信息。按继续按钮。

Mac OS 安装 VM Docker - 图5
选择新建虚拟磁盘,按继续按钮

Mac OS 安装 VM Docker - 图6
Mac OS 安装 VM Docker - 图7
按完成按钮
注意这里选择100G,省的后面扩展麻烦

Mac OS 安装 VM Docker - 图8
选择自己要储存的位置,按储存按钮
Mac OS 安装 VM Docker - 图9
选择CentOS 7 ISO
Mac OS 安装 VM Docker - 图10
Mac OS 安装 VM Docker - 图11
Mac OS 安装 VM Docker - 图12
设置———启动
Mac OS 安装 VM Docker - 图13

开始安装CentOS 7Mac OS 安装 VM Docker - 图14

Mac OS 安装 VM Docker - 图15
Mac OS 安装 VM Docker - 图16

Mac OS 安装 VM Docker - 图17
Mac OS 安装 VM Docker - 图18
重启———安装完成!

三 配置网络(比较重要)

3.1 step1

image.png
新增一个虚拟网卡

image.png
填写子网信息,
image.png
选择自定义网络,不然ip来回change麻烦
image.png

3.2 step2 vm 设置固定ip

vi /etc/sysconfig/network-scripts/ifcfg-ens33

  1. TYPE=Ethernet
  2. PROXY_METHOD=none
  3. BROWSER_ONLY=no
  4. BOOTPROTO=static
  5. # 改成自己的ip
  6. IPADDR=192.168.64.200
  7. NETMASK=255.255.255.0
  8. GATEWAY=192.168.64.2
  9. DNS1=144.144.144.144
  10. DNS2=8.8.8.8
  11. DEFROUTE=yes
  12. IPV4_FAILURE_FATAL=no
  13. IPV6INIT=yes
  14. IPV6_AUTOCONF=yes
  15. IPV6_DEFROUTE=yes
  16. IPV6_FAILURE_FATAL=no
  17. IPV6_ADDR_GEN_MODE=stable-privacy
  18. NAME=ens33
  19. UUID=2ce0f05a-3411-459a-80fe-3bd4feacbd96
  20. DEVICE=ens33
  21. ONBOOT=yes

顺便搞个加速源

  1. mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
  2. wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  3. #或者
  4. #curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  5. yum makecache

3.2 step3 安装docker

  1. # 安装依赖
  2. sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  3. # 添加docker下载仓库
  4. sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  5. # 安装docker-ce
  6. sudo yum install docker-ce
  7. # 启动docker-ce
  8. sudo systemctl start docker
  9. # 验证
  10. sudo docker --version

3.3 step4 安装 docker-compose

  1. sudo curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  2. sudo chmod +x /usr/local/bin/docker-compose
  3. docker-compose --version

3.4 step5 设置开机重启

  1. #启动docker
  2. systemctl start docker
  3. #停止 docker 服务
  4. systemctl stop docker
  5. #重启docker
  6. systemctl restart docker
  7. #查看 docker服务状态
  8. systemctl status docker
  9. #设置开启启动docker服务
  10. systemctl enable docker

四 配置路由demo

注意这是mac的命令 ,且是临时的,永久的太复杂不介绍了,因为mac很少关机哈。

  1. #查看路由表
  2. netstat -r
  3. #新增路由
  4. sudo route -n add -net 172.17.0.0/15 192.168.44.200
  5. #删除路由
  6. sudo route -v delete -net 10.104.40.0/15