Docker架构、镜像、容器

概述

Docker是在Linux容器里运行应用的开源工具,是一种轻量级的虚拟机,诞生于2013年,Docker的设计宗旨:Build,Ship And RunAnyApp,AnyWhere,即通过对应用组件的封装、发布、部署、运行等生命周期的管理,达到应用组件级别的“一次封装,到处运行”的目的。这里的组件,既可以是一个应用,也可以是一套服务,甚至是一个完整的操作系统。

Docker容器与传统虚拟机的比较:

特性Docker容器虚拟机
启动速度秒级分钟级
计算能力损耗几乎无损耗50%左右
性能接近原生弱于
系统支持量上千个几十个
隔离性资源限制完全隔离

Docker的核心概念

镜像

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

Docker提供了简单的机制来创建和更新现有的镜像,用户也可以从网上下载已经做好的应用镜像来直接使用。

容器

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

仓库

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

仓库注册服务器是存放仓库的地方,其中包含了多个仓库,每个仓库集中存放某一类镜像,并且使用不同的标签来区分它们。目前最大的公共仓库是Docker Hub,其中存放了数据庞大的镜像供用户下载使用。

 

Docker安装

yum install docker-engine

安装完成后启动Docker并设置为开机自动启动。

systemctl start docker.service
systemctl enable docker.service

安装好的Dcoker系统有两个应用程序:Docker服务端和Docker客户端。其中Docker服务端是一个服务进程,管理着所有的容器。Docker客户端则扮演着Docker服务端的远程控制器,可以用来控制Docker的服务端进程。大部分情况下Docker服务端和客户端运行在一台机器上。

通过检查Docker版本可以查看Docker服务:

Docker镜像

  • 搜索镜像
docker search [镜像名字]
  • 获取镜像
docker pull [镜像名字]
  • 查看镜像信息

用户可以使用docker images命令查看下载到本地的所有镜像

docker images

 

从回显的信息中可以读出以下信息:

REPOSITORY——镜像属于的仓库。
TAG—镜像的标签信息,标记同一个仓库中的不同镜像
IMAGE ID——镜像的唯一ID 号,唯一标识了该镜像
CREATED——镜像创建时间
VIRTUAL SIZE——镜像大小

 还可以根据镜像的唯一标识号来查询镜像的详细信息。

docker inspect 镜像ID号

为了后续工作中使用这个镜像,可以使用docker tag命令来为本地的镜像添加新的标签。

docker tag 名称:[标签] 新名称:[新标签]

删除镜像

可以使用docker rmi命令删除多余的镜像。

删除镜像的操作有两种方法:使用镜像的标签删除镜像:使用镜像的ID删除镜像。

docker rmi 仓库名称:标签

存储镜像

当需要把一台机器上的镜像迁移到另一台机器上的时候,需要将镜像保存成本地文件,这一过程叫作存出镜像,可以使用docker save命令进行存储操作。

docker save -o 存储文件名 存储的镜像

将存储的镜像从A机器拷贝到B机器,需要在B机器上使用该镜像,就可以将该导出文件导入到B机器的镜像库中,这一过程叫作载入镜像。使用docker load或者docker --input进行载入操作。

docker load <存储的文件

上传镜像

docker push [镜像名称]

Docker容器操作

容器是Docker的另一个核心概念。简单说,容器是镜像的一个运行实例。

容器的创建与启动

命令格式:

docker create [选项] 镜像 运行的程序

启动容器:

docker start 容器ID

容器的运行与终止:

docker stop 容器的ID

容器的进入

docker exec -it 容器ID /bin/bash

容器的导出与导出

docker export 容器ID>文件名

导入

cat 文件名|docker import _生成的镜像名称:标签

删除容器

docker rm 容器ID/名称

 

©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页