docker学习(一)——docker基础技术概念入门

docker参考手册:https://docs.docker.com/engine/reference/commandline/dockerd/

daemon.json参考:https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file

docker网络的参考:https://docs.docker.com/network/

容器构建实例:https://github.com/mysql/mysql-docker

限制容器的资源:https://docs.docker.com/config/containers/resource_constraints/#memory

docker-distribution配置:https://docs.docker.com/registry/configuration/#list-of-configuration-options


容器:  container

容器是啥?https://zh.wikipedia.org/wiki/%E5%AE%B9%E5%99%A8


LXC:Linux Container


虚拟化的常用技术实现形式:

1.主机级虚拟化

  1. Type-I:直接在硬件上装虚拟机管理器(hypervisor),在虚拟机管理器上面跑虚拟机。
  2. Type-II:vmware,virtual box。(物理机上装操作系统,系统上装vmm(virtual mechina manager),vmm上面跑虚拟机)

2.容器级虚拟化(当年叫jail)


共享内核,隔离用户空间;vserver(chroot);

两棵树:进程树和文件系统树

chroot,namespaces,cgroups(在内核级已经实现)

jail >> vserver >>  发展到了LXC


6种名称空间: 

Linux Namespaces
namespace 系统调用参数 隔离内容 内核版本
UTS CLONE_NEWUTS 主机名和域名 2.6.19
IPC CLONE_NEWIPC 信号量、消息队列和共享内存 2.6.19
PID CLONE_NEWPID 进程编号 2.6.24
Network CLONE_NEWNET 网络设备、网络栈、端口等 2.6.29
Mount CLONE_NEWNS 挂载点(文件系统) 2.4.19
User CLONE_NEWUSER 用户和用户组 3.8

Control Groups(cgroups)

作用:实现用户空间的资源分配

docker学习(一)——docker基础技术概念入门_第1张图片


 LXC:

  • lxc-create,template

docker可以说是lxc的增强版,简化了linux容器的使用。

docker利用lxc做容器引擎,通过镜像技术启动容器。


从docker仓库(docker hub)拉取镜像到本地运行

docker:一个容器只运行一个进程。lxc:每个容器当用户独立空间使用

联合挂载,一层一层的,只能对最上面一层进行操作,无法删除下层的文件,删除只是表面删除

容器编排工具:

  • machine+swarm+compose
  • mesos+marathon
  • kubernetes(k8s)

docker自建容器引擎

libcontainer >> 发展成为runC

你可能感兴趣的:(docker,CentOS,docker)