1. 概述

    1. 最近学习 docker 遇到的 坑

1. dockerfile: 安装命令

  1. 概述

    1. 安装命令
    1. 选项参数里, 一定要 带 -y

      1. 不带的话, 基本会阻塞构建

2. 其他: 处理问题, 一定不能慌

  1. 概述

    1. 不要慌
  2. 认识

    1. 出现问题是常态, 不要慌
    2. 有日志先看日志
    3. 没日志再去网上找
    4. 尽量记得自己操作的步骤
      1. 控制变量

3. docker network: hosts 文件

  1. 概述

    1. 加入 docker network 的容器, hosts 文件不会有其他容器
  2. 场景

    1. docker 容器加入 docker network
  3. 看了两本书

    1. 书上都说

      1. hosts 文件里会加入别的容器
      2. 容器之间, 可以通过 主机名 ping 通
      1. 第一本 docker 书(修订版)
      2. docker 容器与容器云
  4. 结果

    1. 我没有发现 host 文件
    2. 当时使用的镜像里没有 ping 命令
  5. 我的处理

    1. 重建容器, 验证 hosts
    2. 调整命令, 验证 hosts
    3. 切换 busybox 进行, 验证 hosts
    4. 在 busybox 下, ping
      1. 卧槽, 居然是通的
      2. hosts 里没有, 也可以通
    5. 给 容器装上 ping, 发现也能通...
      1. 后来发现, 原来是其他的问题
  6. 总结

    1. 如果遇上某些 网络环境的问题, 可以先用 busybox 这类小镜像调试

4. redis: 关闭 protected 模式

  1. 概述

    1. 尝试关闭 redis 的 protected 模式
  2. 场景

    1. 使用 app 连接 redis 时, 提示异常

      1. 仔细看, 是 protected 模式

        1. 没有账号密码
        2. 只能 localhost 连
      2. 处理
        1. 思路1

          1. 关闭 protected 模式
        2. 思路2
          1. 添加 bind 地址
  3. 我的处理

    1. 最开始没看 异常

      1. 以为网断了, 所以搞了半天
    2. 看了异常
      1. 异常写得很清楚
    3. 尝试修改配置
      1. 进入 redis-cli 连接

        1. 修改 protected 模式属性 CONFIG SET protected-mode no
        2. 结果没成功
    4. 重启 redis, 添加命令行选项
      1. --protected-mode no
      2. 结果成功
  4. 总结

    1. 好好看异常提示

5. jenkins: workspace

  1. 概述

    1. jenkins 工作目录的路径
  2. 场景

    1. 设置 自定义workspace
    2. 配合 git
  3. freestyle

    1. git 的工程代码, 直接下载到 workspace 里

      1. 工程的名字目录直接没了
      2. 比如, 工程叫 demo, 下下来后, demo 目录直接没了, 内容在 workspace 里
  4. 多配置项目

    1. 我草这个东西真的有点麻烦

      1. 指定 axis 维度选项
      2. jenkins 会自建目录
        1. 场景

          1. aixs

            1. OS ubuntu
          2. 目录

            # workspace 是 /tmp/jenkins-buildenv/Docker_matrix_job/workspace
            # 其中规则, 你们感受一下...
            /tmp/jenkins-buildenv/Docker_matrix_job/OS=ubuntu/workspace/OS/ubuntu
  5. 总结

    1. 路径刚上来是有点难理解

      1. 有文档还好
      2. 没文档猜起来麻烦
    2. 如果涉及 -v, 多用 docker inspect 观察...

6. jenkins: 容器里执行 docker 命令

  1. 概述

    1. docker 远程执行
  2. 场景

    1. 容器里的 jenkins 脚本, 远程执行 docker 命令
  3. docker daemon

    1. 本质

      1. 带一个 restapi 的守护进程
      2. 本地的交互, 其实也是这个
  4. docker daemon: 暴露

    1. 修改配置文件

      # /lib/systemd/system/docker.service
      ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375
  5. docker cli: 连接远程 daemon

    1. 添加环境变量

      export DOCKER_HOST=tcp://172.17.0.1:2375
    2. 在 dockerfile 里添加

    3. 在 命令行里添加选型啊

      -H http://172.17.0.1:2375
  6. 结论

    1. 远程访问开启, 原来还是很重要的

7. firewalld: 没事不要随便关闭

  1. 概述

    1. 不要随便关闭 firewalld
  2. 场景

    1. docker cli 连不上 docker daemon
    2. 我关闭了 dockerfile
  3. 结果

    1. docker cli 能连上了

    2. git 却克隆不了代码了

      1. 网关能 ping 通, dns 不同

        1. 导致我查了半天资料
      2. 后来看了看 workspace 里, git 代码是有的

        1. 说明之前的网络, 是通的...
        2. 于是开始反思, 之前到底做了啥...
    3. 在 firewall 里添加了 2375 端口的规则

      1. 搞定
  4. 结论

    1. firewalld 要好好学学

      1. 其实就是 iptables

8. jenkins: 成功失败

  1. 概述

    1. jenkins 脚本
  2. 结论

    1. exit 0 是成功
    2. 其他就是 失败

8. docker & jenkins 路径

  1. 概述

    1. docker 配合 jenkins 时的 路径问题
  2. 场景

    1. docker 里的 jenkins
    2. jenkins 使用 host 的 docker-daemon
  3. 问题

    1. 命令在 jenkins 里输入
    2. 实际执行, 是在 host
    3. 如果有 mount, 则实际挂载的目录, 是 host
  4. 结果

    1. 我只能尽量让同样的目录挂载多次
    2. 或者使用 同名目录, 把资料整两次...
    3. 反正目前没啥好结果

Docker - 最近的踩到的一些坑的更多相关文章

  1. 细数阿里云在使用 Docker 过程中踩过的那些坑

    昨天下午道哥在微信上丢给我一条新闻,看看,我们阿里云支持 Docker 企业版了.我打开一看,果然,阿里云发布了飞天敏捷版,开始支持企业级的 Docker 容器. 美国中部时间4月19日,阿里云在容器 ...

  2. Redis上踩过的一些坑

    来自: http://blog.csdn.net//chenleixing/article/details/50530419 上上周和同事(龙哥)参加了360组织的互联网技术训练营第三期,美团网的DB ...

  3. [转帖]美团在Redis上踩过的一些坑-5.redis cluster遇到的一些问题

    美团在Redis上踩过的一些坑-5.redis cluster遇到的一些问题 博客分类: redis 运维 redis clustercluster-node-timeoutfailover  转载请 ...

  4. 三分之一的程序猿之社交类app踩过的那些坑

    三分之一的程序猿之社交类app踩过的那些坑 万众创新,全民创业.哪怕去年陌生人社交不管融资与否都倒闭了不知道多少家,但是依然有很多陌生人社交应用层出不穷的冒出来.各种脑洞大开,让人拍案叫起. 下面我们 ...

  5. 【Fine原创】JMeter分布式测试中踩过的那些坑

    最近因为项目需要,研究了性能测试的相关内容,并且最终选用了jmeter这一轻量级开源工具.因为一直使用jmeter的GUI模式进行脚本设计,到测试执行阶段工具本身对资源的过量消耗给性能测试带来了瓶颈, ...

  6. 与webview打交道中踩过的那些坑

    随着HTML5被越来越多的用到web APP的开发当中,webview这一个神器便日渐凸显出重要地位.简要的说,webview能够在移动应用中开辟出一个窗口,在里面显示html页面,css以及js代码 ...

  7. 美团在Redis上踩过的一些坑-目录(本人非美团)(转)

    来自:http://carlosfu.iteye.com/blog/2254154 分为5个部分:    一.周期性出现connect timeout    二.redis bgrewriteaof问 ...

  8. 安装python爬虫scrapy踩过的那些坑和编程外的思考

    这些天应朋友的要求抓取某个论坛帖子的信息,网上搜索了一下开源的爬虫资料,看了许多对于开源爬虫的比较发现开源爬虫scrapy比较好用.但是以前一直用的java和php,对python不熟悉,于是花一天时 ...

  9. [原创]阿里云RocketMQ踩过的哪些坑

    由于公司的最近开始使用RocketMQ来做支付业务处理, 便开启了学习阿里云RocketMQ的学习与实践之路, 其中踩了不少的坑, 大部份是由于没有仔细查看阿里云的技术文档而踩的坑. 但是有一个非常大 ...

随机推荐

  1. Bootstrap4一些零散的知识点

    ·Bootstrap 是全球最受欢迎的前端组件库,用于开发响应式布局.移动设备优先的 WEB 项目. Bootstrap4 目前是 Bootstrap 的最新版本,是一套用于 HTML.CSS 和 J ...

  2. 54.Python中Meta类常见的配置

    对于一些模型级别的配置.我们可以通过在模型中定义一个类,叫做Meta.然后在这个类中添加一些属性来控制模型的作用. 注意:添加的这个类一定要是Meta,否者的话Django就会不能够识别. from ...

  3. element-ui的upload组件的clearFiles方法

    <template> <div> <el-button @click="clearFiles">重新上传</el-button> & ...

  4. Network Initialization: Fan-in and Fan-out

    https://github.com/pytorch/pytorch/blob/master/torch/nn/init.py @weak_script def _calculate_fan_in_a ...

  5. 小I选宾馆

    小 I 选宾馆 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 小 I 去天津玩啦,一路上,他跟他的同学发生了许多有趣的 ...

  6. Selenium3+python自动化009-iframe定位

    iframe 一.frame:HTML页面中的一种框架,主要作用是在当前页面中指定区域显示另一页面元素: 二.操作Frame中的页面元素 定位元素: 1.id定位driver.switch_to.fr ...

  7. 神器扒网站——teleport ultra

    在平时的开发或者学习的过程中,我们难免会看到一些让人心动的网站,于是自己想把它搞下来,自己手工一个文件一个文件把它保存下来也可以实现,完成了也累得够呛,有一款扒站的神器,可以把你所喜欢的目标网站整个网 ...

  8. 用C#调用外部DLL

    1.有时候需要用C#调用外部的dll,例如c++写的dll,首先需要保证dll的编译环境与本项目的环境是相同的,例如都是x86位或者x64位 2.调用声明和dll内的声明一致: function Te ...

  9. vue的一些基础知识点,后续会更新最全的vue知识点

    axios中jq的基础 jq语法 $(this).hide() 隐藏当前的html元素 $(''#test").hide() 隐藏id='test'的元素 添加新的 HTML 内容 我们将学 ...

  10. 多源最短路(floyd算法)

    Floyd算法: 如何简单方便的求出图中任意两点的最短路径 Floyd-Warshall算法(O(n)比较适用于边较多的稠密图(Dense Graph)) Floyd算法用来找出每对顶点之间的最短距离 ...