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
  • REPOSITORY: 镜像属于的仓库。
  • TAG: 镜像的标签信息,标记同一个仓库中的不同镜像。
  • IMAGE ID: 镜像的唯一ID号,唯一标识了该镜像。
  • CREATED: 镜像创建时间。
  • CREATED: 镜像创建时间。
[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 >/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

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

(0)

相关推荐

  • 在docker上安装运行mysql实例

    希望在自己的机器模拟一下公司中微服务的构建,使用docker部署了mysql实例,使用spring boot进行了CRUD(增删改查)操作进行了一下验证,在后面的学习中也可以尝试更多的框架和组件. ps:实验环境是:ubuntu 14.04, 64位 1.获取mysql镜像 从docker hub的仓库中拉取mysql镜像 sudo docker pull mysql 查看镜像 sudo docker images mysql latest 18f13d72f7f0 2 weeks ago 38

  • docker centos7 安装ssh具体步骤

     docker centos7 安装ssh具体步骤,这里记录下,也行能帮助到正在读文章的朋友. 一. 从docker hub 下载centos 官方镜像 hr:centos7 hr$ docker pull centos:7 下载完后,查看本地资源库: hr:centos7 hr$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE centos 7 ce20c473cd8a 7 weeks ago 172.3 MB 运行容器 h

  • centos7 安装docker步骤详细介绍

    centos7 安装docker 一.官网安装指南地址https://docs.docker.com/engine/installation/linux/centos/ 二.查看内核版本 [root@localhost ~]# uname -r 3.10.0-327.el7.x86_64 [root@localhost ~]# 三.添加yum源 $ sudo tee /etc/yum.repos.d/docker.repo <<-'EOF' [dockerrepo] name=Docker R

  • CentOS 7.2 下安装 Docker 1.12.3 版的详细方法

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口. 1.强大的官方文档 https://docs.docker.com/engine/installation/linux/centos/ 2.按步骤来,先更新yum源,这里用163的源 yum install -y wget cd /etc/yum.repos.d wget http://mi

  • CentOS7 安装docker 解决启动不了的问题

    CentOS7安装docker 启动不了,在工作当中遇到这个问题,当时急的不清,网上资料又不多,不过经过自己的捣鼓终于解决了 这个问题! [root@test ~]# yum update [root@test ~]# yum install docker [root@test ~]# service docker start Redirecting to /bin/systemctl start docker.service Job for docker.service failed beca

  • Centos 6.5中安装docker的步骤(简洁版)

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app).几乎没有性能开销,可以很容易地在机器和数据中心中运行.最重要的是,他们不依赖于任何语言.框架包括系统. 一.安装epel源 复制代码 代码如下: wget http://mirrors.yun-idc.com/epel/6/x86_64/epel-releas

  • Win2008 r2服务器配置VPN服务器教程(图文详解)

    系统环境:WindowsServer2008R2Enterprise(完全安装) 1.配置准备工作 1.1.点击"开始"右边的"服务器管理器" 1.2.在"服务器管理器"里点击"角色" 1.3.在"角色"上点击右键选译"添加角色",点击"下一步" 1.4.在"角色"里选择"网络策略和访问服务",点击"下一步"

  • 在CentOS 7上安装Docker环境的方法与注意事项

    官网文档:https://docs.docker.com/engine/installation/linux/centos/ ,本文大部分是照搬官方文档写的,如果你英文还不错,那么就直接移步官方文档吧,如果你英文实在是不行,那就勉强看一下本人这生涩的翻译~ 以下操作均在root用户下完成 docker的安装要求64位系统且内核版本大于3.10.所以如果是centos的话,必须安装CentOS7.0或以上版本. 我们这里使用的是CentOS7.2 mininul. uname -r 3.10.0-

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

    一.Docker是什么? (1)Docker是在Linux容器里运行应用的开源工具,是一种轻量级的"虚拟机" Logo设计为蓝色鲸鱼,鲸鱼可以看作为宿主机,上面的集装箱可以理解为相互隔离的容器,每个集装箱中包含自己的应用程序. (2)Docker和虚拟机的区别 作为一种轻量级的虚拟化方式,Docker 与传统虚拟机相比具有显著的优势. Docker之所以拥有众多优势,与操作系统虚拟化自身的特点是分不开的.传统虚拟机需要有额外的虚拟机管理程序和虛拟机操作系统层,而Docker容器是直接在

  • Docker Windows下如何安装详细介绍(图文)

    Docker Windows 介绍及安装 前言: 放在三年前,你不认识Docker情有可原,但如果现在你还这么说,不好意思,只能说明你OUT了,行动起来吧骚年,很可能你们公司或者你即将要去的公司,或者你想去的公司很可能就会引入Docker,或者已经引入了Docker. Docker溯源 Docker的前身是名为dotCloud的小公司,主要提供的是基于 PaaS(Platform as a Service,平台及服务)平台为开发者或开发商提供技术服务,并提供的开发工具和技术框架.因为其为初创的公

  • linux上安装Docker(非常简单的安装方法)

    最近比较有空,大四出来实习几个月了,作为实习狗的我,被叫去研究Docker了,汗汗! Docker的三大核心概念:镜像.容器.仓库 镜像:类似虚拟机的镜像.用俗话说就是安装文件. 容器:类似一个轻量级的沙箱,容器是从镜像创建应用运行实例,可以将其启动.开始.停止.删除.而这些容器都是相互隔离.互不可见的. 仓库:类似代码仓库,是Docker集中存放镜像文件的场所. 简单介绍一下在CentOS上安装Docker. 前置条件: 64-bit 系统 kernel 3.10+ 1.检查内核版本,返回的值

  • 解决sql server2008注册表写入失败,vs2013核心功能安装失败

    前天入手了一块三星SSD,然后迫不及待的更换到电脑上,结果就在安装系统的时候出了差错,整个过程折磨了我整整一天,让我深深地感受到了来自地狱的恶意. 既然得到了块好硬盘,就打算装上win10系统,把之前的win8.1系统留着备用,可是安装系统选择分区的时候选错了区,选择了之前win8.1所在的C盘,ghost一键装机之后我才发现好像选择错了分区,赶紧点击取消,原以为会没事,后来发现C盘已经被格式化了,他奶奶个腿的,重新选择分区之后一直顺利的安装好了系统. 然后安装工作软件sql server200

  • Docker 教程之CentOS安装 Docker

    CentOS 系列安装 Docker Docker 支持 CentOS6 及以后的版本. CentOS6 对于 CentOS6,可以使用 EPEL 库安装 Docker,命令如下 $ sudo yum install http://mirrors.yun-idc.com/epel/6/i386/epel-release-6-8.noarch.rpm $ sudo yum install docker-io CentOS7 CentOS7 系统 CentOS-Extras 库中已带 Docker,

  • Docker使用阿里加速器安装centos教程

    上一篇说了hub.docker.com里拉个镜像太,而阿里云为我们做了不少本国镜像,这样下载的速度就很惊人了,下面看一下在centos7下配置阿里云加速器的方法 打开服务配置文件 vi /etc/yum.repos.d/CentOS-Base.repo 将mirrorlist地址改为咱们阿里云加速器的地址 然后ESC,:wq,保存退出 查看一下docket服务的运行状态,systemctl status docker 从阿里云拉个centos的docker镜像下来,docker pull cen

  • Docker教程之Ubuntu 安装 Docker详细介绍

    Ubuntu 系列安装 Docker 官方网站上有各种环境下的 安装指南. 通过系统自带包安装 Ubuntu 14.04 版本系统中已经自带了 Docker 包,可以直接安装. $ sudo apt-get update $ sudo apt-get install -y docker.io $ sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker $ sudo sed -i '$acomplete -F _docker docker' /et

  • Docker在线、离线安装及其常用命令操作

    一.测试环境 名称 版本 centos 7.6 docker 18.09.06 二.在线安装 这里采用yum源命令安装前期准备的依赖包,包括yum-utils.device-mapper-persistent-data.lvm2 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 因为官方镜像仓库网速较慢,在此设置阿里云镜像代理,以便快速下载.上传镜像. sudo yum-config-manager --add-re

  • docker和docker-compose一键安装教程(支持在线和离线)

    shell脚本 #!/bin/sh # 当前目录 CURRENT_DIR=$( cd "$(dirname "$0")" pwd ) #Install docker if which docker >/dev/null; then echo "检测到 Docker 已安装,跳过安装步骤" docker -v echo "启动 Docker " service docker start 2>&1 | tee

  • docker镜像alpine中安装oracle客户端

    目录 1.背景 2.下载instant_client程序包 3.Dockerfile 说明: 4.遇到的问题 4.1.找不到libclntsh.so动态连接库 4.2.找不到libaio.so.1动态连接库 4.3.找不到libnsl.so.1动态连接库 1.背景 有项目需使用python连接oracle数据库,然后查询一些数据进行分析.在安装oracle客户端驱动过程中遇到了一些问题,在此记录下来分享读者.一点限制: oracle数据库与本应用程序不在同一台机器上,数据连接为远程访问方式,针对

随机推荐