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. .net mvc 使用 aspose.cells导出数据

    public class AsposeCellsHelper { public Workbook workBook; public Worksheet worksheet; Style style; ...

  2. [Python]爬取首都之窗百姓信件网址id python 2020.2.13

    经人提醒忘记发网址id的爬取过程了, http://www.beijing.gov.cn/hudong/hdjl/com.web.consult.consultDetail.flow?original ...

  3. C语言 while

    C语言 while while 语句 流程图 案例 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stri ...

  4. Wannafly Winter Camp 2020 Day 5G Cryptographically Secure Pseudorandom Number Generator - 分块

    多组数据,给定质数 \(p\) ,求所有 \(x\) 使得 \(f(x)=\min_{k=2}^x f(k)\) ,其中 \(f(x)=x^{-1}\) 所有 \(p\) 在 \([1,10^9]\) ...

  5. WeUI基础样式库——写一个移动端界面

    WeUI是一套基础样式库,同微信原生视觉体验一致,由微信官方设计团队为微信内网页和微信小程序量身设计的.我们来看看这个基础库样式到底长什么样. 这些密密麻麻的就是压缩后的样式库.密密麻麻地看起来简直要 ...

  6. Pikachu-File Inclusion(文件包含漏洞)

    File Inclusion(文件包含漏洞)概述 文件包含,是一个功能.在各种开发语言中都提供了内置的文件包含函数,其可以使开发人员在一个代码文件中直接包含(引入)另外一个代码文件. 比如 在PHP中 ...

  7. laravel本地化扩展包的下载使用

    1.下载扩展包 composer require caouecs/laravel-lang:~3.0 2.下载完成之后在根目录下的vendor中caouces\src下就是语言的扩展包 2.1我们复制 ...

  8. pycharm+anaconda在Mac上的配置方法 2019.11.29

    内心os: 听人说,写blog是加分项,那他就不是浪费时间的事儿了呗 毕竟自己菜还是留下来东西来自己欣赏吧 Mac小电脑上进行python数据开发环境的配置 首先下载Anaconda,一个超好用的数据 ...

  9. 翻转引起 cocos studio 引擎与cocos2d 代码相同坐标显示不同

    使用setFlippedX后,又改变锚点为1.此时代码中坐标需要相对于cocos studio 中增加它本身的width,因为(0.5,0.5)是相对于自己中点的翻转,不变坐标.而(1,0.5)是相对 ...

  10. POJ 1738:An old Stone Game 石子归并 (GarsiaWachs算法)

    There is an old stone game.At the beginning of the game the player picks n(1<=n<=50000) piles ...