• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Docker的核心及安装的具体使用

    一.Docker是什么?

    (1)Docker是在Linux容器里运行应用的开源工具,是一种轻量级的“虚拟机”

    Logo设计为蓝色鲸鱼,鲸鱼可以看作为宿主机,上面的集装箱可以理解为相互隔离的容器,每个集装箱中包含自己的应用程序。

    (2)Docker和虚拟机的区别

    作为一种轻量级的虚拟化方式,Docker 与传统虚拟机相比具有显著的优势。

    Docker之所以拥有众多优势,与操作系统虚拟化自身的特点是分不开的。传统虚拟机需要有额外的虚拟机管理程序和虛拟机操作系统层,而Docker容器是直接在操作系统层面之上实现的虚拟化,
    如图:

    (3)Docker的使用场景

    现在开发者需要能方便地创建运行在云平台上的应用,必须要脱离底层的硬件,同时还需要任何时间地点可获取这些资源,这正是Docker所能提供的。Docker 的容器技术可以在一台主机 上轻松为任何应用创建一个轻量级的、可移植的、自给自足的容器。通过这种容器打包应用程序,意味着简化了重新部署、调试这些琐碎的重复工作,极大地提高了工作效率。

    二.Docker的核心概念及安装

    (1)镜像

    Docker的镜像(mage) 是创建容器的基础,类似虚拟机的快照
    可以理解为是一一个面向Docker容器引擎的只读模板。比如,一个镜像可以是一个完整的 CentOS 操作系统环境,称为-个CentOS
    镜像;可以是一个安装了MySQL的应用程序,称为一个MySQL镜像,等等。

    (2)容器

    Dooker的容器(Container) 是从镜像创建的运行实例。它可以被启动、停止和删除。所创建的每一个容器都是相互隔离、互不可见,可以保证安全性的平台。可以把容器看作一个简易版的Linux环
    境,Docker 利用容器来运行和隔离应用。

    (3)仓库

    Docker仓库(Repository) 是用来集中保存镜像的地方,当创建了自己的镜像之后,可以使用push命令将它上传到公有仓库(Public) 或者私有仓库(Private), 这样一来当 下次要在另外一台机器上使用这个镜像时,只需要从仓库上拉取下来就可以了。

    (4)安装Docker

    主机有网的话可以直接安装,

    配置yum

    [root@localhost ~]# rm -rf /etc/yum.repos.d/*
    
    [root@localhost ~]# vim /etc/yum.repos.d/a.repo
    [aaa]
    name=asd
    baseurl=file:///media
    gpgcheck=0
    [root@localhost ~]# mount /dev/cdrom /media/
    
    [root@localhost ~]# yum -y install docker

    安装完成可以启动Docker,并设置开机自启

    [root@localhost ~]# systemctl start docker
    
    [root@localhost ~]# systemctl enable docker
    
    Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
    [root@localhost ~]# docker version //查看Docker版本
    Client:
     Version:     1.13.1
     API version:   1.26
     Package version: docker-1.13.1-75.git8633870.el7.centos.x86_64
     Go version:   go1.9.4
     Git commit:   8633870/1.13.1
     Built:      Fri Sep 28 19:45:08 2018
     OS/Arch:     linux/amd64
    
    Server:
     Version:     1.13.1
     API version:   1.26 (minimum version 1.12)
     Package version: docker-1.13.1-75.git8633870.el7.centos.x86_64
     Go version:   go1.9.4
     Git commit:   8633870/1.13.1
     Built:      Fri Sep 28 19:45:08 2018
     OS/Arch:     linux/amd64
     Experimental:  false

    分为服务端与客户端

    三.Docker镜像操作

    (1)搜索镜像(前提电脑有网)

    [root@localhost ~]# docker search dhcp
    
    INDEX    NAME                      DESCRIPTION                   STARS   OFFICIAL  AUTOMATED
    docker.io  docker.io/networkboot/dhcpd          Suitable for running a DHCP server for you...  43          [OK]
    docker.io  docker.io/joebiellik/dhcpd           DHCP server running on Alpine Linux       15          [OK]
    docker.io  docker.io/gns3/dhcp              A DHCP container for GNS3 using dnsmasq     3          [OK]
    docker.io  docker.io/instantlinux/dhcpd-dns-pxe      Serve DNS, DHCP and TFTP from a small Alpi...  2          [OK]
    docker.io  docker.io/ictu/dhcpd-tftpd           dhcpd tftpd container              1          [OK]
    docker.io  docker.io/marcelwiget/dhcptester        Simple dhcp client simula

    (2)获取镜像

    [root@localhost ~]# docker pull docker.io/network/dhcpd //下载上面最开头的dhcp

    还有一种就是插入已经下载好的dhcp

    做成光盘插入到主机中

    [root@localhost ~]# mount /dev/cdrom /media/
    [root@localhost ~]# cd /media/
    [root@localhost media]# ls
    dhcp
    [root@localhost media]# cp dhcp /
    [root@localhost media]# 
    [root@localhost /]# docker load < dhcp
    fccbfa2912f0: Loading layer 116.9 MB/116.9 MB
    e1a9a6284d0d: Loading layer 15.87 kB/15.87 kB
    ac7299292f8b: Loading layer 14.85 kB/14.85 kB
    a5e66470b281: Loading layer 5.632 kB/5.632 kB
    a8de0e025d94: Loading layer 3.072 kB/3.072 kB
    e2e29955c5aa: Loading layer 12.7 MB/12.7 MB
    12e14fab4dd4: Loading layer 49.15 kB/49.15 kB
    47bdfd3bbf39: Loading layer 4.096 kB/4.096 kB
    Loaded image: docker.io/networkboot/dhcpd:latest

    将镜像下载到本地

    (3)查看镜像信息

    [root@localhost /]# docker images
    REPOSITORY          TAG         IMAGE ID //镜像ID      CREATED       SIZE
    docker.io/networkboot/dhcpd  latest       6f98b6b9b486    19 months ago    125 MB
    [root@localhost /]# docker inspect 6f98b6b9b486 \查看镜像ID详细信息

    镜像的详细信息中包括创建时间、系统版本.主机名.域名.用户.卷.标签.操作系统.设备ID等各种信息。

    [root@localhost /]# docker tag docker.io/networkboot/dhcpd dhcp:dhcp 
    第一个dhcp:名称
    第二个dhcp:标签

    (4)删除镜像

    [root@localhost /]# docker rmi dhcp:dhcp
    Untagged: dhcp:dhcp

    四.Docker容器操作

    容器是Docker的另一一个核心概念,简单来说,容器是镜像的一个运行实例,是独立运行的一个或一组应用及它们所必需的运行环境,包括文件系统、系统类库. shell 环境等。镜像是只读模板,而容器会给这个只读模板一个额外的可写层

    (1)容器的创建与启动

    [root@localhost /]# docker create -it docker.io/networkboot/dhcpd /bin/bash
    
    e392026ddd186d01cbd3306acae15f2f197dc9874a84ea241d347c7fe20a0946

    常用选项: -i表示让容器的输入保持打开: -t表示让Docker分配一个伪终端。

    [root@localhost /]# docker ps -a \\查看所有容器运行状态
    CONTAINER ID    IMAGE             COMMAND         CREATED       STATUS       PORTS        NAMES
    e392026ddd18    docker.io/networkboot/dhcpd  "/entrypoint.sh /b..."  About a minute ago  Created                 elegant_goldwasser

    输出信息显示容器的ID号.加载的镜像.运行的程序.创建时间、目前所处的状态、端口映射.容器名称等。其中状态-栏为Created表示当前的容器是新创建的并处于停止状态。

    [root@localhost /]# docker start e392026ddd18  \\启动容器 ,上面的ID
    e392026ddd18

    容器启动后,可以看到容器状态一栏已经变为UP,表示容器已经处于启动状态。

    (2)容器的运行与终止

    [root@localhost /]# docker stop 容器的ID号

    (3)容器的进入

    [root@localhost /]# docker exec -it e392026ddd18 /bin/bash
    root@e392026ddd18:/# 

    用户可以通过所创建的终端来输入命令,通过exit命令退出容器.

    root@e392026ddd18:/# ls
    bin  core entrypoint.sh home lib64 mnt proc run  srv tmp var
    boot dev  etc      lib  media opt root sbin sys usr
    root@e392026ddd18:/# exit
    exit

    (4)容器的导出导入

    容器是最小化,导致一些命令不能使用,所以就要从容器里面导出到本地来设置,设置完再导入进容器就可以。

    导出命令如下:

    [root@localhost /]# docker export e392026ddd18>/etc/dhcp/dhcpd.conf

    乱数字为容器的ID号

    把dhcp主配置文件导出来配置,

    导入命令如下:

    [root@localhost /]# docker import /etc/dhcp/dhcpd.conf > e392026ddd18

    (5)容器的删除

    可以使用dockerrm命令将一个已经终止状态的容器进行删除。

    一个镜像可以包含多个容器

    [root@localhost /]# docker stop e392026ddd18  \\先停止
    e392026ddd18
    [root@localhost /]# docker rm e392026ddd18  \\再删除
    e392026ddd18
    [root@localhost /]# docker ps -a
    CONTAINER ID    IMAGE        COMMAND       CREATED       STATUS       PORTS        NAMES

    五.Docker资源控制

    Cgroup是Controlgroup的简写,是Linux内核提供的一种限制所使用物理资源的机制,这些资源主要包括CPU.内存、blkio。 下面就这3个方面来谈一下Docker是如何使用Cgroup机制进行管理的。

    (1)限制CPU使用速率

    例如,将容器60ff4594cc73的CPU使用设置为20000,设置CPU的使用率限定为20%:

    [root@localhost ~]# echo 20000 &gt;/sys/fs/ cgroup/ cpu/ system. slice/docker-60ff4594cc73b5474477 636b25b41f 16e1 66a3606aed22 6522d420d0c296990d. scope/cpu . cfs_ quota _us

    (2)多任务按比例分享CPU

    例如,运行3个新建容器A. B、C,占用CPU资源的比例为1:1:2就可以这样执行:

    [root@localhost /]# docker run -tid --cpu-shares 1024  +镜像A
    [root@localhost /]# docker run -tid --cpu-shares 1024  +镜像B
    [root@localhost /]# docker run -tid --cpu-shares 2048  +镜像C

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    上一篇:Tomcat目录结构详解
    下一篇:Docker数据管理与网络通信的使用
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Docker的核心及安装的具体使用 Docker,的,核心,及,安,装的,