如何Docker化任意一个应用
(PS:本文摘自docker中文社区,原作者为程序师,微博请@程序师视野)
网上有很多关于如何将应用Docker化的教程,为什么我还要再写一个呢?
我见过的大部分教程都是限定在某种特定技术(例如Java或者Python),可能无法满足读者的需求。同时,这些教程也没有说清楚关于Dev和Ops团队之间建立明确约定所涉及到的所有相关方面(这正是容器化的精髓所在)。
我根据最近的经验总结了以下一些步骤。它是一份细节清单,包含了其他指南中忽略的内容。
声明:这不是一份新手指南。我建议读者先掌握一些如何设置和使用docker的基础知识,并且创建和运行一些容器之后,再来阅读。
让我们开始吧。
一、选择基础镜像
每种对应技术几乎都有自己的基础镜像,例如:
https://hub.docker.com/_/java/
https://hub.docker.com/_/python/
https://hub.docker.com/_/nginx/
如果不能直接使用这些镜像,我们就需要从基础操作系统镜像开始安装所有的依赖。
外面有很多教程使用的都是Ubuntu(例如 ubuntu:16.04)作为基础镜像,这不能算有问题,但是我建议优先考虑Alpine镜像:
https://hub.docker.com/_/alpine/
它是一个非常小的基础镜像(大约只有5MB)。
注意:在基于Alpine的镜像中无法使用“apt-get”命令,