docker(2)

简介: docker

docker(1)https://developer.aliyun.com/article/1530609

容器

  1. 从面向对象角度
    Docker利用容器(Container)独立运行的一个或一组应用,应用程序或服务运行在容器里面,容器就类似于一个虛拟化的运行环
    境,容器是用镜像创建的运行实例。就像是Java中的类和实例对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器为镜
    像提供了一个标准的和隔离的运行环境,它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台
  2. 从镜像容器角度
    可以把容器看做是一个简易版的Linux环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。

仓库

仓库(Reppsitory) 是集中存放镜像文件的场所。

类似于

Maven仓库,存放各种jar包的地方;

github仓库,存放各种git项目的地方;

Docker公司提供的官方registry被称为Docker Hub,存放各种镜像模板的地方。

仓库分为公开仓库(Public) 和私有仓库(Private) 两种形式。

最大的公开仓库是==Docker Hub(ttps://hub.docker.com/),==存放了数量庞大的镜像供用户下载。

国内的公开仓库包括阿里云、网易云等

总结

需要正确理解仓库/镜像/容器的概念:

docker本身是一个容器运行载体或称之为管理引擎.我们把应用程序和配置打包正好形成一个可以交付的运行环境,这个打包好的运行环境就是image镜像文件.只有通过这个镜像文件才能生成Docker容器实例(相当于java new出来的一个对象)

image文件可以看作是容器的模板。Docker根据image文件生成容器的实例。同一个image文件,可以生成多个同时运行的容器

实例。

镜像文件

  • image文件生成的容器实例,本身也是一一个文件,称为镜像文件。

容器实例

  • 一个容器运行一种服务,当我们需要的时候,就可以通过docker客户端创建-一个对应的运行实例,也就是我们的容器

仓库

  • 就是放一堆镜像的地方,我们可以把镜像发布到仓库中,需要的时候再从仓库中拉下来就可以了。

2.docker入门图解

3.docker平台架构

Docker是一个C/S模式的架构,后端是一个松耦合架构,众多模块各司其职。

Docker运行的基本流程为:

1用户是使用Docker Client与Docker Daemon建立通信,并发送请求给后者。

2 Docker Daemon作为Docker架构中的主体部分,首先提供Docker Server的功能使其可以接受Docker Client的请求。

3 Docker Engine执行Docker内部的一系列工作,每-项工作都是以- 一个Job的形式的存在。

4 Job的运行过程中,当需要容器镜像时,则从Docker Registry中下载镜像,并通过镜像管理驱动Graph driver将下载镜像以Graph的形式存储。

5当需要为Docker创建网络环境时,通过网络管理驱动Network driver创建并配置Docker容器网络环境。

6当需要限制Docker容器运行资源或执行用户指令等操作时,则通过Exec driver来完成。

7 Libcontainer是-项独立的容器管理包,Network driver以及Exec driver都是通过Libcontainer来实现具体对容器进行的操作。

最终操作的是一个迷你版的docker容器实例(里面有阉割版的linux)

4.安装

https://docs.docker.com/engine/install/centos/

yum -y install gcc

yum -y install gcc-c++

配置镜像仓库

  1. 安装 yum-utils包
    sudo yum install -y yum-utils
  2. 设置存储库,这里官网上给的仓库地址不连外网会非常慢,我们使用阿里云镜像
    sudo yum-config-manager
    –add-repo
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新yum

yum makecache

5.阿里云镜像加速

https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

加速器地址

https://cznhpi5o.mirror.aliyuncs.com

1. 安装/升级Docker客户端

推荐安装1.10.0以上版本的Docker客户端,参考文档docker-ce

2. 配置镜像加速器

针对Docker客户端版本大于 1.10.0 的用户

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://cznhpi5o.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

6. 为什么Docker比vm快

(1)docker有着比虚拟机更少的抽象层

由于docker不需要Hypervisor(虚拟机)实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。因此在CPU、内存利用率上docker将会在效率上有明显优势。

(2)docker利用的是宿主机的内核,而不需要加载操作系统OS内核

当新建一个容器时,docker不需要和虚拟机一样重新加载一个操作系统内核。进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程是分钟级别的。而docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个docker容器只需要几秒钟。

三,常用命令

1.帮助启动类命令

  • 启动docker:systemctl start docker
  • 停止docker:systemctl stop docker
  • 重启docker:systemctl restart docker
  • 查看docker状态:systemctl status docker
  • 开机启动: systemctl enable docker
  • 查看docker概要信息: docker info
  • 查看docker总体帮助文档: docker --help
  • 查看docker命令帮助文档: docker具体命令 --help

2.镜像命令

  • docker images 列出本地的所有镜像 OPRIONS说明
  • -a列出本地所有镜像(含历史映像层)
  • -q只显示镜像ID
  • docker search某个xxx镜像名字


  • OPTIONS说明:
  • –limnit: 只列出N个镜像,默认25个
  • docker search --limit 5 redis
  • 某个xXx镜像名字

  • docker system df查看镜像/容器/数据卷所占的空间圆
  • docker rmi某个xxx镜像名字ID 删除镜像
  • 面试题:谈谈docker虛悬镜像是什么?

docker(3)https://developer.aliyun.com/article/1530612

相关文章
|
8月前
|
运维 NoSQL Redis
Docker-基本了解
Docker-基本了解
53 3
|
22天前
|
存储 弹性计算 数据安全/隐私保护
|
1月前
|
Linux 虚拟化 开发者
Docker(1)
Docker定义 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
|
7月前
|
虚拟化 云计算 Docker
带你一分钟看懂 “Docker”
2010年,几个搞IT的年轻人,在美国旧金山成立了一家名叫“dotCloud”的公司。 这家公司主要提供基于PaaS的云计算技术服务。具体来说,是和LXC有关的容器技术。 后来,dotCloud公司将自己的容器技术进行了简化和标准化,并命名为——Docker。 Docker技术诞生之后,并没有引起行业的关注。而dotCloud公司,作为一家小型创业企业,在激烈的竞争之下,也步履维艰。
49 1
|
7月前
|
Java Shell Linux
Docker使用总结
Docker使用总结
98 0
|
9月前
|
Docker 容器
docker
docker
58 1
|
9月前
|
Linux Docker 容器
|
10月前
|
JSON API 数据格式
docker详解
docker详解
69 0