第七节:docker与虚拟机对比、私有仓库的搭建和阿里云容器镜像服务介绍

一. docker容器和虚拟机对比

1. docker容器虚拟化

 (1). 容器就是将软件打包成标准化单元,以用于开发、交付和部署。

 (2). 容器镜像是轻量的、可执行的独立软件包 ,包含软件运行所需的所有内容:代码、运行时环境、系统工具、系统库和设置。

 (3). 容器化软件在任何环境中都能够始终如一地运行。

 (4). 容器赋予了软件独立性,使其免受外在环境差异的影响,从而有助于减少团队间在相同基础设施上运行不同软件时的冲突。

如图:

2. docker容器和传统虚拟机比较

(1). 相同点

 docker容器和虚拟机具有相同的资源隔离优势和分配优势。

(2). 不同点

 A. 容器虚拟化的是操作系统,虚拟机虚拟化的是硬件

 B. 传统虚拟机可以运行不同的操作系统,容器只能运行同一类型操作系统。

二. 私有仓库的搭建

1. 什么是私有仓库

 Docker官方的Docker hub(https://hub.docker.com)是一个用于管理公共镜像的仓库,我们可以从上面拉取镜像 到本地,也可以把我们自己的镜像推送上去。但是,有时候我们的服务器无法访问互联网,或者你不希望将自己的镜 像放到公网当中,那么我们就需要搭建自己的私有仓库来存储和管理自己的镜像。

PS:像国内的阿里云、腾讯云等等都既提供公有仓库,也提供私有仓库。

2. 搭建自己的私有仓库  

(1). 下载私有仓库镜像

docker pull registry

(2). 启动私有仓库容器

docker run -id --name=myRegistry -p 5000:5000 registry

PS:私有仓库容器对外开放的端口为5000

(3). 打开浏览器 输入地址http://私有仓库服务器ip:5000/v2/_catalog

  看到   {"repositories":[]}    表示私有仓库 搭建成功

(4). 配置私有仓库的地址

 修改daemon.json ,【vim /etc/docker/daemon.json 】 在上述文件中添加一个key,保存退出。用于让 docker 信任私有仓库地址;

{
    "insecure-registries":["私有仓库服务器ip:5000"]
}

如图:

(5). 重启docker 服务

systemctl restart docker   #重启docker
docker start myRegistry      #启动私有仓库镜像

3. 私有仓库镜像的上传和下载

前提配置:

(1). 宿主机要先配置私有仓库的地址为目标私有仓库,必须是配置https

A. 指令:vi /etc/docker/daemon.json,  其中 https://119.45.174.249:5000 是私有仓库地址

{
  "registry-mirrors": ["https://ijmr3it2.mirror.aliyuncs.com"],
  "insecure-registries": ["https://119.45.174.249:5000"]
}

B. 重启

systemctl daemon-reload 
systemctl restart docker 

(2). 必须要登录,后进行上传和下载

docker login 119.45.174.249:5000

 如图:

1. 上传

# 1、标记镜像为私有仓库的镜像     
docker tag redis:5.0 私有仓库服务器IP:5000/redis:5.0
 
# 2、上传标记的镜像     
docker push 私有仓库服务器IP:5000/redis:5.0

注意:只写ip,不写http://

如图:

2. 下载

#拉取镜像 
docker pull 私有仓库服务器ip:5000/redis:5.0

 如图:

三. 阿里云容器镜像服务

1. 镜像加速服务

 centos和ubuntu系统直接复制下面代码执行。

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

配置完成,进行查看,如下图,说明配置成功。

 

2. 私有仓库的配置

(1).  前提

A.  先配置一个仓库密码,此密码不是案例云的登录密码。(还要注意所在的地区)

B. 创建命名空间,后续上传的镜像可以位于不同的命名空间下。

  如:ypfstore为私有仓库,ypfstore2为公有仓库。

2. 上传

(1). 登录

sudo docker login --username=xxxxxx registry.cn-shenzhen.aliyuncs.com

上述指令来源于: 

如图: 

同一个镜像可以上传多个不同版本:

 

(2)  把本机的redis:5.0镜像上传到阿里云ypfstore命名空间下

A. 先做tag标记

sudo docker tag redis:5.0 registry.cn-shenzhen.aliyuncs.com/ypfstore/redis:5.0

B. push上传

sudo docker push registry.cn-shenzhen.aliyuncs.com/ypfstore/redis:5.0

 如下图:

去阿里云平台查看上传的镜像,并且详情中有完善的该镜像操作指令,比如下载、修改等等。

3. 下载

(1). 登录(同上)

sudo docker login --username=xxxxxx registry.cn-shenzhen.aliyuncs.com

(2). 执行下载指令

sudo docker pull registry.cn-shenzhen.aliyuncs.com/ypfstore/redis:5.0

 如下图:

 

3. 公共仓库的使用

 要求:上述ypfstore2命名空间对应的就是公共仓库,现在我要把本机nginx:latest上传到阿里云的ypfstore2公共仓库(要求阿里云中显示为1.0版本),不需要登录,直接先标记,后上传即可。

 (1). 上传

#标记
sudo docker tag nginx:latest registry.cn-shenzhen.aliyuncs.com/ypfstore2/nginx:1.0
#上传
sudo docker push registry.cn-shenzhen.aliyuncs.com/ypfstore2/nginx:1.0

 如下图:

去阿里云中查看:

 

(2). 下载

 无需登录,直接执行下载指令

sudo docker pull registry.cn-shenzhen.aliyuncs.com/ypfstore2/nginx:1.0

 如下图:

 

!

  • 作       者 : Yaopengfei(姚鹏飞)
  • 博客地址 : http://www.cnblogs.com/yaopengfei/
  • 声     明1 : 如有错误,欢迎讨论,请勿谩骂^_^。
  • 声     明2 : 原创博客请在转载时保留原文链接或在文章开头加上本人博客地址,否则保留追究法律责任的权利。
 
原文地址:https://www.cnblogs.com/yaopengfei/p/13705822.html