Docker 学习笔记

目的

最近为了做 csapp 的大作业,需要在 mac 上使用 Linux,但是又不想安装庞大的虚拟机,想到了使用 docker,正好趁此机会学习一下 docker

参考资料

bilibili 狂神说 docker 教程

Docker 简介

传统:开发 Jar,运维来做

现在:开发打包部署上线,一套流程做完。

  • Docker 通过隔离机制,将服务器利用到极致。

  • mysql 集群,redis 集群部署,使用 docker 十分方便

Docker 历史

2010 年,几个年轻人在美国成立 dotCloud,做 paas 云计算服务(plantform as a service)

他们将容器化技术命名为 Docker,起初没有引起行业注意,公司无法生存。2013 年他们决定开源 docker。越来越多人发现 docker 的优点。

docker 为什么火?

相对于虚拟机,非常轻量,基于 Go 语言开发

  • 虚拟机:windows-Vmware,mac- parallels,通过虚拟机软件虚拟出来一台电脑或者多台电脑

  • 容器:创建镜像(最核心的环境+jdk+mysql),几个 M 就够了

虚拟机缺点:

kernel ->Lib -> app

  • 资源占用多
  • 启动慢

docker:

  • kernel ->容器(Lib->app)

  • 容器的应用直接运行在数组环境中,容器没有自己的内核,所以轻便

  • 每个容器间相互隔离,都有自己的文件系统

文档地址:https://docs.docker.com

DevOps(开发,运维):

  • 应用更快速的交付和部署,docker 打包镜像发布测试
  • 更便捷升级和扩缩容
  • 更简单的系统运维
  • 更高效的计算资源利用,一个物理机可以运行很多容器实例

Docker 的基本组成:

95AE2B87-8FDB-4D2C-8C60-8E0D262720AB

Image:一个模版,通过改模版创建容器服务

Container:项目往 container 里面放

Repository:存放 image 的地方