Docker概述及安装

目录

一.概述

1.docker的出现

2.docker是什么

3.docker的意义

4.docker与VM区别

5.docker的组件(三要素)

6.Docker引擎(Docker Engine)

7.名称空间

8.控制组

二.docker安装

1.安装依赖环境

2. 配置阿里docker镜像源

3.本地索引缓存

4.安装docker

5.阿里云镜像加速

6.网络优化

总结:

docker的组件(三要素)

docker的组件(三要素)


一.概述

Docker概述及安装_第1张图片

  • Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口

1.docker的出现

以linux而言,linux操作系统会有一个主进程pid=1,派生出其他进程来控制不同服务
例如:pid=2—python
   pid=3—java
   pid=4—php
三个服务可能会相互影响
使用者期望讲这三个不同的服务,跑在不同的运行时环境中实现相互不影响,同时不会增加服务器成本,一次延伸出 能否将这三种服务分别封装起来,所以就有了kvm虚拟化技术,实现了一个操作系统模拟多个操作系统/不同的运行时环境,而随着技术发展,虚拟化技术开销较大(例如:只要运行一个py脚本,想要使用虚拟化方式实现,还需要安装一个操作系统,并不方便/合理)由此,延伸出了容器技术
 

2.docker是什么

  • docker是基于容器技术的轻量级虚拟化解决方案;
  • docker是容器技术,把linux的cgroup、namespaces等容器底层技术进行完美的封装、并抽象为用户提供创建和管理容器的便捷界面(命令行cli、api等)c/s

3.docker的意义

  1. 统一了基础设施环境--》docker环境
  2. 同一了程序打包(装箱)方式--》docker镜像
  3. 同一了程序部署(运行)方式--》docker容器

补充;1.镜像:封装的某一个时刻的服务/应用状态

           2.容器:应用跑起来的状态(正常提供服务的状态)

4.docker与VM区别

不同点        container                          VM
启动速度      秒级                               分钟级
运行性能      接近原生(共享内核运行)            50%左右损耗
磁盘占用      MB                                 GB    
数量          成百上千                           一般几十台
隔离性        进程级别                            系统级别(更彻底)
操作系统      主要支持Linux                       几乎所有
封装程度      只打包项目代码和依赖关系             完整的操作系统、与宿主机隔离

5.docker的组件(三要素)

  1. 镜像:模板
  2. 容器:基于镜像,运行状态/运行时状态
  3. 仓库:存放镜像模板

补充:仓库的分类

          1、公共仓库—》docker hub
     2、私有仓库registry harbor

6.Docker引擎(Docker Engine)

  • Docker Engine是具有以下主要组件的c/s客户端-服务器应用程序:
  • server端:服务器是一种长期运行的程序,称为守护程序进程( dockerd命令)
  • CLIENT端:REST API,它指定程序可以用来与守护程序进行通信并指示其操作的接口
  • 命令行界面(CLI)客户端( docker命令)。
  1. docker run
  2. docker start
  3. docker rm
     

7.名称空间

  • Docker使用一种称为namespaces提供容器的隔离工作区的技术。运行容器时,Docker会为该容器创建一组名称空间。
  • 这些名称空间提供了一层隔离。容器的每个方面都在单独的名称空间中运行,并且其访问仅限于该名称空间。
  • Docker Engine在Linux上使用以下名称空间:
名称空间          	描述
mount	            文件系统,挂载点—》》一个文件系统内,不能重复挂载一个指定目录,例如:/mnt
user	            操作进程的用户和用户组
pid	                进程编号
uts                	主机名和主机域
ipc	                信号量、消息队列,共享内存(理解,不同的应用调用内存资源的时候应该使用不同的    
                    内存空间)
net                	网络设备、网络协议栈、端口等

8.控制组

  • Linux上的Docker引擎还依赖于另一种称为控制组(cgroups)的技术。cgroup将应用程序限制为一组特定的资源。控制组允许Docker Engine将可用的硬件资源共享给容器,并有选择地实施限制和约束。例如,可以限制特定容器可用的内存。

二.docker安装

1.安装依赖环境

[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2

2. 配置阿里docker镜像源

[root@localhost ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3.本地索引缓存

[root@localhost ~]# yum makecache fast

4.安装docker

[root@localhost ~]# yum install docker-ce -y


#启动docker
[root@localhost ~]# systemctl start docker



#查看是否安装成功

[root@localhost ~]# docker version

5.阿里云镜像加速

官网地址:https://help.aliyun.com/document_detail/60750.htmlicon-default.png?t=LA92https://help.aliyun.com/document_detail/60750.html

Docker概述及安装_第2张图片

找到加速地址

Docker概述及安装_第3张图片 5.2 配置使用

 

mkdir -p /etc/docker

tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://g39835el.mirror.aliyuncs.com"]
}
EOF

systemctl daemon-reload

systemctl restart docker

6.网络优化

vim /etc/sysctl.conf
net.ipv4.ip_forward=1

sysctl -p
systemctl restart network
systemctl restart docker

总结:

名称空间          	描述
mount	            文件系统,挂载点—》》一个文件系统内,不能重复挂载一个指定目录,例如:/mnt
user	            操作进程的用户和用户组
pid	                进程编号
uts                	主机名和主机域
ipc	                信号量、消息队列,共享内存(理解,不同的应用调用内存资源的时候应该使用不同的    
                    内存空间)
net                	网络设备、网络协议栈、端口等

docker的组件(三要素)

  1. 镜像:模板
  2. 容器:基于镜像,运行状态/运行时状态
  3. 仓库:存放镜像模板

docker的组件(三要素)

  1. 镜像:模板
  2. 容器:基于镜像,运行状态/运行时状态
  3. 仓库:存放镜像模板

你可能感兴趣的:(Linux,docker,容器)