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. 2019牛客多校第二场H题(悬线法)

    把以前的题补补,用悬线求面积第二大的子矩形.我们先求出最大子矩阵的面积,并记录其行三个方向上的悬线长度.然后排除这个矩形,记得还得特判少一行或者少一列的情况 #include <bits/std ...

  2. idea 代码没有被svn控制

    背景 开发从svn上拉下来的代码,上传时发现idea的快捷键(ctrl+T)没反应以及菜单栏中没有相关按钮. 原因 发现项目当前文件夹里没有 .svn 隐藏文件夹,所以当前文件夹就没有被idea识别继 ...

  3. java流程控制结构

    一.流程控制分三类 1. 顺序结构 - 程序是从上往下,从左往右执行 2. 选择结构(判断结构) - if语句 A. if(关系表达式){语句体} - 执行流程:成立就执行语句体,不成立就不执行 B. ...

  4. Python标准库之re模块

    re模块用于正则表达式. 正则表达式在线测试:http://c.runoob.com/front-end/854 正则表达式元字符可以参考:https://www.w3cschool.cn/zheng ...

  5. Ajax基础原理与应用

    Ajax函数封装ajax.js // Get / Post // 参数 get post // 是否异步 // 如何处理响应数据 // URL // var handleResponse = func ...

  6. JavaScript仿计算器案例源代码

    效果图 index.html <!DOCTYPE html> <html> <head> <title></title> <link ...

  7. jQuery---width和height的方法

    width和height的方法 //获取div的宽度 $("div").css("width", "400px"); console.log ...

  8. Navicat Premium怎么设置字段的唯一性(UNIQUE)?

    参考链接:https://blog.csdn.net/Song_JiangTao/article/details/82192189 1.打开你想要设计的表 这里写图片描述2.清楚你想要设计哪个字段为唯 ...

  9. liunx下安装Docker

    1.安装并启动docker 1.检查内核版本,必须是3.10及以上uname -r2.安装docker yum install docker命令安装(需要联网) [root@localhost ~]# ...

  10. laravel如何向视图传递值

    1.定义路由 Route::get('demo','DemoController@demo'); 2.定义控制器(内with();方法就是定义传递的值 key=>value)=>" ...