一、明确适用场景! Docker不是万灵药,有它自己的适用场景。在你得到这些好处的同时,也是要付出相应代价的。 对开发来说,可以快速搭建起一个测试环境,比传统的虚拟机方式速度快、吃资源也要少。(基于内核LXC) 对部署来说,可以容易且方便的“容器化”方式去部署应用。 但是,他必然是有代价的,比如磁盘性能不够、学习成本等…
二、Shell与GUI 看到部分楼层给出了“图像化降低效率”和“图形化一定会降低效率”的讨论。 其实,这是一个伪命题。无论是shel还是GUI,本质上都是尽可能实现“自动化”。GUI的背后也是shell,shell汇总生成script。 当然,如果你熟悉Linux、熟悉shell,GUI就只是一种抽象操作而已,自己敲键盘还是更有效率的。 注意,这里不是单纯讨论安装环境这种“低级”行为,安全环境、内网隔离的情况下,往往需要自己源码编译makefile, 这时候你还能指望安装个GUI?有shell script就阿弥陀佛了!
三、数据持久化问题和安全问题 docker是随时可以停止、或者删除。当docker被rm掉,容器里的数据将会丢失。 为了避免数据丢失,可以使用数据卷挂载来存储数据。 但是docker volumes是围绕 unionFS 镜像层提供持久存储,数据安全上缺乏保证。 如果容器突然崩溃,数据库未正常关闭,可能会损坏数据。
四、数据库不建议使用 MySQL对IO要求较高,性能瓶颈一般出现在IO上面,为了数据安全,往往需要数据卷挂载,综合参考上一条,数据库不建议使用Docker技术。
下面是很多人动动手就能搜罗到的资料,多google和baidu,也不至于啥也找不到
官方文档:https://docs.docker.com/ 阮一峰Docker入门教程:https://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html W3C入门Docker:https://www.w3cschool.cn/reqsgr/ 手残党->慕课免费教程:https://www.imooc.com/learn/867