Docker For Mac 构建 Nginx 反向代理 Tomcat 踩坑实录

前言:至于Docker的安装和使用教程很多,这里直接引用,本文主要记录使用期间遇到的坑。

 

一、Mac OS安装Docker

        1.Docker 在 Mac 中的两种实现方式

          方式一:基于 HyperKit (Docker Desktop for Mac); (笔者采用的方式,就是一个dmg文件,官网下载安装即可)

          方式二:基于Virtual Box(Docker Toolbox);

          两者的区别:官方解答

       2. 安装及使用教程 

          官方教程 ,看不懂英文就Google浏览器右键翻译成中文

          三十分钟入门教程

          菜鸟教程详细版

 

二、踩坑实录

        1.问题:  通过Docker Desktop for Mac 安装 Kubernetes,  一直处于Kubernetes  is starting 状态

        原因:说白了就是Kubernetes 的镜像无法 从 k8s.gcr.io 仓库 拉取下来 ,因为伟大的墙,你懂的。

        解决: 从官方的镜像库中拉取下来,然后重新打个镜像标签,重启就行了。         

// 1.首先拉取镜像
docker pull mirrorgooglecontainers/kube-apiserver-amd64:v1.14.8
docker pull mirrorgooglecontainers/kube-controller-manager-amd64:v1.14.8
docker pull mirrorgooglecontainers/kube-scheduler-amd64:v1.14.8
docker pull mirrorgooglecontainers/kube-proxy-amd64:v1.14.8
docker pull mirrorgooglecontainers/pause:3.1
docker pull mirrorgooglecontainers/etcd-amd64:3.2.18
docker pull coredns/coredns:1.1.3

//2.修改镜像的tag
docker tag docker.io/mirrorgooglecontainers/kube-proxy-amd64:v1.14.8 k8s.gcr.io/kube-proxy-amd64:v1.14.8
docker tag docker.io/mirrorgooglecontainers/kube-scheduler-amd64:v1.14.8 k8s.gcr.io/kube-scheduler-amd64:v1.14.8
docker tag docker.io/mirrorgooglecontainers/kube-apiserver-amd64:v1.14.8 k8s.gcr.io/kube-apiserver-amd64:v1.14.8
docker tag docker.io/mirrorgooglecontainers/kube-controller-manager-amd64:v1.14.8 k8s.gcr.io/kube-controller-manager-amd64:v1.14.8
docker tag docker.io/mirrorgooglecontainers/etcd-amd64:3.2.18  k8s.gcr.io/etcd-amd64:3.2.18
docker tag docker.io/mirrorgooglecontainers/pause:3.1  k8s.gcr.io/pause:3.1
docker tag docker.io/coredns/coredns:1.1.3  k8s.gcr.io/coredns:1.1.3

//3.删除无用的镜像

        ⚠️注意:拉取镜像的版本一定要和docker桌面上的Kubernetes版本保持一致,否则,不行。比如我的是V1.14.8。

 

    2.问题:Mac OS 宿主机 无法直接 访问 Docker 容器

        原因:和Docker的网络模式有关。Docker 是安装在Linux上的,宿主机和容器可以通过docker0虚拟网卡连接,而mac的 Docker,没有 docker0。

         a.这个问题官方有给出: 官方答复

         b.了解下Linux/Mac OS 的网络模式: 网络模式配置

       解决:把nginx容器端口发布为80 ,-p  xxxx:80,通过 localhost:xxxx,即可访问到 nginx 服务器首页。

       如果把tomcat 发布为 -p 8080:8080 也能访问到tomcat 首页。(这里有个404 的坑,请看问题3

 

  3.访问 Docker 的 Tomcat 容器首页 ,报404 错误. (我在这个问题上栽了好几天,哭!)

    原因:没有找到首页的文件。进入tomcat 容器内,进入 webapps目录下你会发现是空的,而tomcat首页会放在webapps下面。旁边有个webapps.dist 文件,下面包含webapps下面应该有的文件。

        解决:

          把webapps.dist 下的文件挪到webapps下面。

          或者,删了那个空文件,把 webapps.dist 改为 webapps。

         

rm -fr webapps
mv webapps.dist/ webapps

 

 

 

 

           

          

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值