docker 学习

Docker的内部组件

Namespaces

  命名空间,Linux内核提供的一种对进程资源隔离的机制,例如进程、网络、挂载点等资源

CGroups

  控制组,Linux内核提供的一种限制进程资源的机制;例如CPU、内存等资源。

UnionFS

  联合文件系统,支持将不同位置的目录挂载到同一虚拟文件系统,形成一种分层的模型

Docker与虚拟机的区别,以KVM举例

1.启动时间

  Dcoker秒级启动,KVM分钟级启动

2.轻量级

  容器镜像大小通常以M为单位,虚拟机以G为单位。

  容器资源占用小,要比虚拟机部署更快速。

3.性能

  容器共享宿主机内核,系统机虚拟化,占用资源少,没有Hypervisor层开销,容器性能基本接近物理机;

  虚拟机需要Hypervisor层支持,虚拟化一些设备,具有完整的GuestOS,虚拟化开销大,因而降低性能,没有容器性能好。

4.安全性

  由于共享宿主机内核,只是进程级隔离,因此隔离性和稳定性不如虚拟机,容器具有一定权限访问宿主机内核,存在一定安全隐患。

5.使用要求

  KVM基于硬件的完全虚拟化,需要硬件CPU虚拟化技术支持;

  容器共享宿主机内核,可运行在主流的Linux发行版,不用考虑CPU是否支持虚拟化技术。

Docker应用场景

  1.节省项目部署时间

  2.环境一致性

  3.持续集成

  4.微服务

  5.弹性伸缩

 Centos安装Docker

  1、Docker要求CentOS系统的内核版本高于 3.10 ,通过 uname -r 命令查看你当前的内核版本是否支持安账docker

  2、更新yum包:sudo yum update

  3、安装需要的软件包,yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

  sudo yum install -y yum-utils device-mapper-persistent-data lvm2

  4、设置yum源:sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

  5、可以查看所有仓库中所有docker版本,并选择特定版本安装:yum list docker-ce --showduplicates | sort -r

  6、安装docker:sudo yum install docker-ce

  7、启动、设置开启开机启动

  sudo systemctl start docker

  sudo systemctl enable docker

  8、验证安装是否成功(有client和service两部分表示docker安装启动都成功了):docker version

  9、查看docker启动状态:systemctl status docker

  10、执行docker info出现如下警告

  https://yq.aliyun.com/articles/278801

卸载:

  1、查询docker安装过的包:

    yum list installed | grep docker

    

  2、删除安装包:

    yum remove docker-ce.x86_64 ddocker-ce-cli.x86_64 -y

  3、删除镜像/容器等

    rm -rf /var/lib/docker

什么是镜像?

  简单说,Docker镜像是一个不包含Linux内核而又精简的Linux操作系统。

镜像从哪里来?

  Docker Hub是由Docker公司负责维护的公共注册中心,包含大量的容器镜像,Docker工具默认从这个公共镜像库下载镜像。

  http://hub.docker.com/explore

  默认是国外的源,下载会慢,建议配置国内镜像仓库:

  # vi /etc/docker/daemon.json

  {

    "registry-mirrors":["https://registry.docker-cn.com"]

  }

https://www.cnblogs.com/qinxu/p/10032176.html

  

原文地址:https://www.cnblogs.com/418836844qqcom/p/11262588.html