Docker 踩坑日常

2018-03-03

docker

Docker 真的是个炒鸡棒棒的东东!日常娱乐玩耍居家必备品!

没用Docker之前遇到的问题:

  • 虾米:“这代码在我机器上能运行啊!”
  • 蕾咪:“woc!昨天测试不是这样的!不是这样的!”
  • 展会之前忙到二半夜住在办公室跑测试;
  • 没有这个博客…

自己经常哪来干啥:

  • 托管服务(集群);
  • 尝试新东西(直接 docker container/image rm)即可删除,不会留下脏东西;
  • 统一小伙伴们的开发环境
  • 提供其他系统的环境,比如kali-linux;
  • 共享自己的服务器(欢迎来我这里托管服务!不收费哦);
  • 把一些据有独特功能的容器通过shell脚本当 bin 工具用;

这是一篇推销docker的文章

不错的学习资料:docker从入门到放弃

一些学习的建议:

  • 一定要获取最新的docker资料
  • 概念多,多敲敲命令
  • 实践
  • 看最佳实践,确保服务运行稳定
  • 尝试自己搭建服务
  • 学习docker原理

除了docker自身的docker cliet 有许多的命令需要掌握,
Dockerfile、docker-compose 这样的工具会让你的容器编排工作更舒服!

Docker 的基础概念来了解一下

镜像

Docker 镜像就是一个只读的模板,镜像可以用来创建 Docker 容器。

容器

容器是从镜像创建的运行实例。 它可以被启动、 开始、 停止、 删除。 每个容器都是相互隔离的、 保证安全的平台。

可以这样理解:镜像->类 容器->由类创建的对象

仓库

仓库是集中存放镜像文件的场所.
仓库注册服务器上往往存放着多个仓库, 每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)最大的公开仓库是 Docker Hub, 存放了数量庞大的镜像供用户下载。
国内的公开仓库包括 Docker Pool等, 可以提供大陆用户更稳定快速的访问。
push命令上传到仓库
pull命令拉取一个镜像

一个值得注意的地方:建议在Ubuntu/Debian上搭建docker,因为有像aufs或overlay2的UnionFS内核驱动。(比Centos和RHEL更好)

一些小的踩坑经验

  • 容器连接,不要用link,划分网卡隔离就好;
  • 容器kill后是可以存储东西,但是存东西分情况,还是用volume数据卷最好;
  • Dockerfile 最好用一个RUN完成一个操作,
    来围观一个Dockerfile
    FROM debian:lastest  
    RUN apt update \
        && apt upgrade \
        && apt install wget \
    
  • (补充)反正一行RUN构建一层镜像,最后多臃肿自己看… …
  • 容器慎用 docker commit,
  • 区分开 docker contianer kill/stop 的区别 ;
  • Dockerfile中空白镜像用FROM scratch ;
  • Dockerfile 和 docker-compose的区别?Dockerfile用来创建镜像,服务由镜像实例化的容器组成,docker-compose 编排容器;

未完待续…


Comments: