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完成一个操作,
来围观一个DockerfileFROM 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 编排容器;
未完待续…