一、docker镜像的仓库 --- repos-registry的创建:

仓库分为公共仓库和私有仓库

DockerHub的官方仓库 https://hub.docker.com

DockerPool社区仓库 https://dl.dockerpool.com

Dockern Pool (http://dockerpool.com)是国内专业的Docker社区,目前也提供了官方镜像的下载管理服务

仓库 --- 创建自己的私有仓库

(1)仓库端172.16.254.162

[root@localhost ~]# docker images

[root@localhost ~]# docker run -d -p 5000:5000 -v /var/lib/registry:/var/lib/registry --restart=always --name registry registry:2

[root@localhost ~]# docker ps -a

(2)docker客户端设置,172.16.254.60

2.1. 修改配置文件将私有库地址加入进去(yum安装)

# vim /etc/sysconfig/docker

# line 4: add Docker-Registry's URL

OPTIONS='--insecure-registry 192.168.210.128:5000

注意:有时会遇到如下报错:

这是由于Registry为了安全性考虑,默认是需要https证书支持的,可利用2.2提到的方法解决。

2.2. 或者修改/etc/docker/daemon.json文件,加入如下内容:

"insecure-registries": ["172.16.254.162:5000"],

systemctl restart docker

docker images

(3)客户端操作

docker tag busybox:latest 172.16.254.162:5000/busybox:latest

docker push 172.16.254.162:5000/busybox:latest

客户端删除本地原有的busybox 镜像,然后向私有库172.16.254.162重新下载

docker pull 172.16.254.162:5000/busybox:latest

docker images

下载成功

二、docker底层依赖的核心技术

命名空间 (Namespaces)

控制组 (Control Groups)

联合文件系统 (Union File System)

Linux 虚拟网络支持:本地和容器内创建虚拟接口

1. 命名空间 (Namespaces):实现了容器间资源的隔离

每个容器拥有自己独立的命名空间 , 运行其中的应用就像是运行在独立的操作系统中一样 , 我们都可以看到文件系统,网卡等资源保证了容器之间互不影响,

namesaces管理进程号 , 每个进程命名空间有一套自己的进程号管理方法 , 进程命名空间是一个父子关系的结构 , 子空间中的进程对于父空间是可见的

网络命名空间—有了 PID 命名空间 , 那么每个名字中的进程就可以相互隔离 , 但是 , 网络端口还是共享本地的端口 . 网络命名空间就是为进程提供一个完全独立的网络协议栈的视图

包括 : 网络设备接口 ,IPv4 和 IPv6 协议栈 ,IP 路由表 , 防火墙规则 ,sockets 等等 ...

目前容器所使用的命名空间提供5种不同的类型 :(了解即可)

2. 控制组功能 cgroups:

制组 (Control groups)--CGroups 是 Linux 内核的一个特性 ,主要用来对共享资源进行隔离、限制、审计等 。cgroups 允许对于进程或进程组公平 ( 不公平 ) 的分配 CPU 时间、内存分配和 I/O 带宽。

容器通过 cgroups 来得到所能够管理资源的分配和使用。因此容器所获得资源仅为所有系统资源的一个部分

资源限制 : 内存子系统为进程组设置内存使用上限,内存达到上限后再申请内存,就会发

出 Out of Memory

优先级 : 通过优先级让一些组得到更多 CPU 等资源

资源审计 : 用来统计系统上实际把多少资源用到适合的目的上 , 可以使用 cpuacct 子系统

记录某个进程组使用的 CPU 时间

隔离 : 为组隔离名字空间 , 这样一个组不会看到其他组的进程 .网络连接和文件系统

控制 : 挂起 . 恢复和启动等操作

3. 联合文件系统 (Union FS)

docker 中使用AUFS(another Union File System 或 v2 版本以后的Advanced multi-layered Unification File System) 控制为每一个成员目录设定只读 / 读写 / 写出权限 , 同时 AUFS 有一个类似分层的概念 , 对只读权限的分支可以逻辑上进行增量的修改

轻量级的高性能分层文件系统 , 它支持将文件系统中的修改信息作为一次提交 , 并层层叠加 , 并且可以将不同目录挂载到同一个虚拟文件系统下docker 目前支持的联合文件系统包括AUFS/btrfs/vfs/DeviceMappe

docker镜像的仓库的更多相关文章

  1. 第四章 使用Docker镜像和仓库(二)

    第四章 使用Docker镜像和仓库(二) 回顾: 开始学习之前,我先pull下来ubuntu和fedora镜像 [#9#cloudsoar@cloudsoar-virtual-machine ~]$s ...

  2. 第四章 使用Docker镜像和仓库

    第4章 使用Docker镜像和仓库 回顾: 回顾如何使用 docker run 创建最基本的容器 $sudo docker run -i -t --name another_container_mum ...

  3. Docker镜像与仓库(一)

    Docker镜像与仓库(一) Docker镜像与仓库(一) 如何查找镜像? Docker Hub https://registry.hub.docker.com docker search [OPTI ...

  4. 04_Docker入门(下)之docker镜像和仓库的使用

    docker镜像和仓库 镜像介绍 docker镜像是由文件系统叠加而成的.最低端是一个引导文件系统,即bootfs.当一个容器启动后,它会将被移动到内存中,而引导文件系统则会被卸载,以留出更多的内存以 ...

  5. Docker之- 使用Docker 镜像和仓库

    目录 使用Docker 镜像和仓库 什么是 Docker 镜像 列出 Docker 镜像 tag 标签 Docker Hub 拉取镜像 查找镜像 构建镜像 创建Docker Hub 账号 使用 Doc ...

  6. Docker镜像的仓库及底层依赖的核心技术(3)

    一.docker镜像的仓库 仓库分为公共仓库和私有仓库 DockerHub的官方仓库:https://hub.docker.com DockerPool社区仓库:https://dl.dockerpo ...

  7. 《第一本docker书》第4章 使用docker镜像和仓库 读书笔记

    docker最底端是一个引导文件系统,即bootfs. 第二层是root文件系统rootfs,位于引导文件系统之上. 在传统的Linux引导过程中,root文件系统会最先以只读的方式加载,当引导结束并 ...

  8. docker镜像与仓库

    1.docker image 镜像 容器的基石 层叠的只读文件系统 联合加载(union mount)   2.镜像存储地址 /var/lib/docker 3.镜像操作 列出镜像 镜像标签和仓库 查 ...

  9. Docker镜像与仓库(二)Dockerfile

    Docker镜像文件与仓库(二) Docker镜像文件与仓库(二) Dockerfile指令 Dockerfile格式: 1.#Comment注释2.INSTRUCTION大写的指令名 argumen ...

随机推荐

  1. C++——INI文件详解

    原创声明:本文系博主原创文章,转载及引用请注明出处. 1. INI文件介绍 INI是英文单词 INItialization 的缩写,常作为Windows系统下的配置文件.INI文件是文本文件,通常用于 ...

  2. 201271050130-滕江南-《面向对象程序设计(java)》第十七周学习总结

    201271050130-滕江南-<面向对象程序设计(java)>第十七周学习总结 博文正文开头格式:(2分) 项目 内容 这个作业属于哪个课程 https://www.cnblogs.c ...

  3. 【OI学习注意事项】

    1. 必备知识 普及组必学 1.模拟算法(暴力枚举),按照题目的要求,题目怎么说就怎么做,保证时间和正确性即可. 2.搜索与回溯,主要的是\(DFS\)(深度优先搜索)和\(BFS\)(宽度优先搜索) ...

  4. Oracle之:查询锁表,删除锁表

    -- 查询当前哪个表被锁 select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo. ...

  5. 32位linux安装chrome浏览器

    首先你需要一个安装包,可以在CSDN上搜索google-chrome-stable_current_i386.deb. 然后在终端输入 sudo apt-get install gdebi 然后找到安 ...

  6. git命令行指南

    Git 常用命令 git init here -- 创建本地仓库(repository),将会在文件夹下创建一个 .git 文件夹,.git 文件夹里存储了所有的版本信息.标记等内容 git remo ...

  7. AcWing:143. 最大异或对(01字典树 + 位运算 + 异或性质)

    在给定的N个整数A1,A2……ANA1,A2……AN中选出两个进行xor(异或)运算,得到的结果最大是多少? 输入格式 第一行输入一个整数N. 第二行输入N个整数A1A1-ANAN. 输出格式 输出一 ...

  8. 删除git的远程分支

    命令:$ git push origin [空格][冒号][需要删除的分支名字] git push origin :dev 删除git的凭证的方法: 控制面板\用户帐户\凭据管理器  --->普 ...

  9. JavaWeb-SpringBoot(抖音)_一、抖音项目制作

    JavaWeb-SpringBoot(抖音)_一.抖音项目制作 传送门 JavaWeb-SpringBoot(抖音)_二.服务器间通讯 传送门 JavaWeb-SpringBoot(抖音)_三.抖音项 ...

  10. 0.2 IDEA配置

    一.IDEA配置maven 在启动配置设置清理方式:clean jetty:run maven版本以及本地setting和repository JRE版本以及编码格式:-Dfile.encoding= ...