这篇文章讲什么?

新手学习 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