2019-1-22 Docker 工作流+常见问题解答
适合0基础新手阅读(文章会不断更新)
这篇文章讲什么?
新手学习 Docker 过程中的一些常见问题。
这篇文对谁有用?有什么用?
对谁有用?:刚开始学 Docker 的0基础新手
有什么用?:从一个更高层次的角度来看 Docker
正文
1、名词解释
- Docker
- Dockerfile
- Docker Compose
- Docker Swarm
- Kubenetes
这些词分别是什么意思?
Docker: 一个容器化技术,可以把程序+环境打包起来。解决环境不一致造成的问题。也省去了在每一台服务器上安装环境的时间。也解决了环境中多个版本冲突的问题。
Dockerfile:是一个文件名。一般惯例是这个文件放在你程序的根目录。
Docker Compose:一个程序一般有多个组件,比如 Ruby on Rails + Redis
如果写2个 Dockerfile 然后 docker build, docker build, docker run, docker run,
用倒是也能用,只是麻烦。所以有 docker-compose.yml 可以一个文件顶多个 Dockerfile 文件。
Docker Swarm:待补写
Kubenetes:待补写
工作流 Workflow
1、在使用 Docker 后,开发环境和生产环境会发生什么变化?分别用什么?
开发环境:docker-compose
生产环境:Docker Swarm / Kubenetes
2、能不能生产环境不用 Swarm,直接用 Docker compose?
可以,只是没有必要。
因为 Swarm 和 Docker compose 用的都是 docker-compose.yml 文件。
为了用 Swarm 实际上你并不需要额外写很多东西。
但是 Swarm 带来的功能多一些。而且后面要扩展也更方便。
所以哪怕你是 Digital Ocean 上5美元10美元的机器(1G内存2G内存)
哪怕你网站一天的访问量连20都没有。是个很小的程序。
直接用 Docker swarm 就是了。
本文会持续更新
初次编写于 2019-1-22