docker-compose 常用命令:

  • docker-compose build 构建(重新构建)项目中的服务容器。
  • docker-compose up -d 在后台启动服务容器
  • docker-compose stop 停止正在运行的容器,可以通过docker-compose start 再次启动
  • docker-compose ps 列出目前所有的容器

docker 的原理和组成

  • 什么时 Linux 容器:

Linux容器不是模拟一个完整的操作系统,而是对进程进行隔离,就像是给正常的进程外面套了一个保护层,对于容器里面的进程来说,它接触到的各种资源都是虚拟的,从而实现与底层系统的隔离。它相比虚拟机来说,因为是进程级别的,所以有很多优势:启动快、资源占用少、体积小; 容器与宿主机是共享系统内核的。

  • Docker和Linux容器是什么关系?

Docker属于Linux容器一种封装,提供简单易用的容器使用接口;它将应用程序与该程序的依赖打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机运行一样

总结: docker 属于Linux 容器的一种封装,提供简单易用的使用接口,而Linux容器是对进程进行隔离,它与宿主机共享系统内核。

docker 与虚拟机的区别

  1. 虚拟机是在硬件级别进行虚拟化,而docker 是在操作系统层面进行虚拟化
  2. 虚拟机时通过模拟硬件搭建操作系统,而docker 是复用操作系统。
  3. 虚拟机实现了操作系统之间的隔离,而docker 只是进程之间的隔离。

总结:

  • 虚拟机是在硬件级别的虚拟化,通过模拟硬件搭载操作系统,实现操作系统之间的隔离
  • docker是在操作系统层面进行虚拟化,是进程间的隔离复用了操作系统

docker 网络

  • bridge 模式:此模式将容器连接到一个docker0虚拟网桥,通过docker0网桥以及Iptables nat表配置与宿主机通信
  • host 模式:容器将不会虚拟出自己的网卡,配置自己的IP等,而是直接与宿主机的共享IP和端口
  • none 模式:该模式关闭了容器的网络功能。

https://www.cnblogs.com/windyet/articles/10139739.html

docker 是如何实现隔离的

Linux 内核提供 namespace 完成隔离,Cgroup 完成资源限制