Docker的概述与安装

一、 Docker概述

Docker简介

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可抑制的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器完全使用沙盒机制,相互之间不会存在任何接口。几乎没有性能开销,可以很容易的在机器和数据中心运行。最重要的是,他们不依赖于任何语言、框架或者包装系统。 Docker是dotCloud公司开源的一个基于LXC的高级容器引擎,源码托管在Github上,基于go语言并且遵从Apache2.0协议开源。
GitHub地址:https://github.com/moby/moby

LXC主要通过Kernel的namespace实现每个用户实例之间的项目隔离,通过cgroup实现对资源的配额和调度。

Docker容器技术与虚拟机的区别

相同点:docker容器技术和虚拟机技术,都是虚拟化技术。

不同点:

        虚拟机技术:

      docker容器技术:

通过图片,我们很明显的看到docker有着比虚拟机更少的抽象层。 由于docker不需要Hypervisor实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。所以docker效率比虚拟机效率高。达到了秒级启动的地步。

Docker相较于VM的优点

  • 比VM小、快,Docker容器的尺寸减小相比于整个虚拟机大大简化了分布到云和分发时间的开销。Docker启动一个容器实例时间仅仅需要几秒钟。
  • Docker是一个开放的平台,构建、发布和运行分布式应用程序。
  • 开发人员不需要关注具体是哪个Linux操作系统。
  • Google、微软(azure)、亚马逊(AWS)、IBM等都支持docker。
  • Docker支持Unix/Linux操作系统,也支持Windows和Mac。
  • 一次封装,到处运行
     

Docker局限性

Docker用于应用程序时是最有用的,但并不包含数据。日志、数据库等通常放在Docker容器外。一个容器的镜像通常都很小,不用存储大量数据,存储可以通过外部挂载等方式使用,比如:NFS、ipsan、MFS、ceph等 ,或者docker -v 命令进行映射磁盘。
总之,docker只用于计算,存储交给别人。

二、 Docker 架构

Docker 包括三个基本概念

  • 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
  • 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
  • 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。

Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。

Docker 容器通过 Docker 镜像来创建。


 

三、 Docker安装

1、使用官方安装脚本自动安装

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

2、启动 Docker

[root@localhost ~]# systemctl start docker
##通过运行 hello-world 镜像来验证是否正确安装了 Docker Engine-Community 。
[root@localhost ~]# docker run hello-world

3、卸载 Docker

##删除安装包
[root@localhost ~]# yum remove docker-ce
##删除镜像、容器、配置文件等内容
[root@localhost ~]# rm -rf /var/lib/docker

四、 Docker 镜像加速

国内从 DockerHub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker 官方和国内很多云服务商都提供了国内加速器服务,

##编辑配置文件
[root@localhost ~]# 
cat <<EOF >>/etc/docker/daemon.json
{
    "registry-mirrors": [
        "https://0vmzj3q6.mirror.aliyuncs.com",
        "https://docker.m.daocloud.io",
        "https://mirror.baidubce.com",
        "https://dockerproxy.com",
        "https://mirror.iscas.ac.cn",
        "https://huecker.io",
        "https://dockerhub.timeweb.cloud",
        "https://noohub.ru",
        "https://vlgh0kqj.mirror.aliyuncs.com"
    ]
}
EOF

##重新启动服务
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker

五、/etc/docker/daemon.json 配置文件

核心配置字段

data-root  

  • 指定 Docker 数据存储路径(替代旧的 graph 选项)
  • 示例:"/mnt/docker-data"  

 2.  exec-opts  

  • 运行时选项(如 cgroup 驱动)
  • 示例:["native.cgroupdriver=systemd"]  

 3.  log-driver  

  • 默认容器日志驱动(如 json-file, syslog, journald)  
  • 示例:"json-file"    

4.  log-opts 

  • 日志驱动的配置选项
  • 示例:{"max-size": "10m", "max-file": "3"}    

网络配置

5. bip  

  • 指定网桥 IP 地址(如 "192.168.1.1/24")

6. default-address-pools  

  • 自定义默认 IP 地址池
  • 示例:[{"base": "10.10.0.0/16", "size": 24}]

7. dns  

  • 自定义 DNS 服务器
  • 示例:["8.8.8.8", "1.1.1.1"]

8. mtu  

  • 容器网络 MTU 值

示例

{
  "data-root": "/var/lib/docker",
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  },
  "registry-mirrors": ["https://registry.example.com"],
  "insecure-registries": ["myregistry.local:5000"],
  "live-restore": true,
  "features": {
    "buildkit": true
  }
}

注意事项

修改后需重启 Docker 服务:sudo systemctl restart docker

可通过 docker info 验证配置是否生效

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值