Docker简介

Docker
   
Docker是基于GO语言开发的一个开源的应用容器引擎,基于Linux内核(而非具体系统),通过cgroup,namespace等等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。可以运行在任何主流的Linux系统上,所需资源和性能开销都极少。
  与VMware等传统虚拟技术相比,Docker优势非常明显,传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而Docker容器不需要进行硬件虚拟,直接运行于宿主的内核,容器内没有自己的内核。所以Docker的优势主要体现在轻量级、资源消耗小、容器启动快。关于这一部分可以参考官网或http://dockone.io/article/6051

Docker使用场景
  通常虚拟机更擅长于彻底隔离整个运行环境,例如云服务提供商通常采用虚拟机技术隔离用户。而Docker主要用来隔离应用,统一环境。在资源有限的情况下,我们可以很轻松的在一台宿主机上运行多个容器,这对我们本地搭建分布式环境来说非常方便。此外说句题外话,Docker的出现(再配以K8S的容器编排)极大的降低了运维成本和难度,中小型项目很适合采用这种容器化部署方式。

安装

    前置条件

  • 64位机器,Linux3.8或更高版本的内核
  • 内核必须支持适合的存储驱动,默认存储驱动通常是Device Mapper

 Docker有多种安装方式,包括从存储库安装、下载RPM包手动安装等,官方推荐前者(官方安装)。这里简单介绍一下Centos 7下从存储库安装的过程,安装前建议先检测一下内核版本、存储驱动是否安装等先决条件

  1. 系统检查
  2. 安装yum-utils包(提供yum-config-manager 实用程序),并设置稳定存储库。
  3. 安装 Docker 引擎
#检查内核版本
[root@localhost /]# uname -a
Linux localhost.localdomain 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
#检查存储驱动
[root@localhost /]# grep device-mapper /proc/devices
253 device-mapper
#安装必要工具
[root@localhost /]# sudo yum install -y yum-utils device-mapper-persistent-data lvm2
...
#指定存储库
[root@localhost lib]# sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
已加载插件:fastestmirror
...
#安装
[root@localhost lib]# yum install docker-ce docker-ce-cli containerd.io
已加载插件:fastestmirror
....

启动、查看Docker状态

#启动docker
[root@localhost lib]# systemctl start docker
#加入开机启动
[root@localhost lib]# systemctl enable docker
#查看Docker运行状态
[root@localhost docker]# service docker status
Redirecting to /bin/systemctl status docker.service
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
   Active: active (running) since 
   ...
   CGroup: /system.slice/docker.service
           └─7987 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
......

基于Hello-World镜像启动一个容器

#测试
[root@localhost lib]#  docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete 
....

查看Docker详情(包含内核、驱动、容器等信息)


#查看docker信息
[root@localhost lib]# docker info
Client:
 Debug Mode: false

Server:
#容器数量
 Containers: 1
  Running: 0
  Paused: 0
  Stopped: 1
 Images: 1
 Server Version: 19.03.1
#存储驱动
 Storage Driver: overlay2
  Backing Filesystem: xfs
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 894b81a4b802e4eb2a91d1ce216b8817763c29fb
 runc version: 425e105d5a03fabd737a126ad93d62a9eeede87f
 init version: fec3683
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 3.10.0-957.el7.x86_64
 Operating System: CentOS Linux 7 (Core)
 OSType: linux
 Architecture: x86_64
 CPUs: 2
 Total Memory: 1.777GiB
 Name: localhost.localdomain
 ID: 6GOS:OTVS:CRRL:PZH5:6JKV:FSUO:PDW4:3QLC:2YQ7:XESP:REQO:IS55
 Docker Root Dir: /var/lib/docker    #docker根目录
 Debug Mode: false
 Registry: https://index.docker.io/v1/    #仓库地址
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值