Docker学习笔记—day006
·
Docker学习笔记—day006(镜像的发布-阿里云、私有)
一、将本地镜像推送到服务器(阿里云)
1.1、创建个人实例

1.2、创建命名空间

1.3、创建镜像仓库


进入仓库镜像–>镜像仓库(管理)–>获取脚本

1.4、将本地myubuntu_addvim镜像推送至阿里云镜像仓库
# 1、登录阿里云
docker login --username=aliyun6383xxxx37 crpi-qmhc69ivyae99s.cnxxx-chengdu.personal.cr.aliyuncs.com
登录成功

# 2、为本地已有的 Docker 镜像创建一个新的标签(别名)
docker tag [ImageId] crpi-qmhc69xxxxyae99s.cn-chengdu.personal.cr.aliyuncs.com/radan0814/myubuntu_addvim:[镜像版本号]
别名创建成功

# 3、将本地镜像推送的阿里云镜像仓库中
docker push crpi-qmhc695xxxae99s.cn-chengdu.personal.cr.aliyuncs.com/radan0814/myubuntu_addvim:[镜像版本号]
推送成功

二、将阿里云镜像仓库里面的镜像进行拉取
2.1、使用远程镜像恢复myubuntu_addvim镜像
使用远程镜像仓库进行拉取该镜像到本地
# 使用远程镜像仓库,将远程镜像拉取到本地
docker pull crpi-qmhc6xxxvyae99s.cn-chengdu.personal.cr.aliyuncs.com/radan0814/myubuntu_addvim:[镜像版本号]
docker run -it 431f8e2ef5d4 /bin/bash


三、将本地镜像发布到私有仓库
Docker Hub类似于 Github
Docker Hub、阿里云这样的公共镜像仓库可能不太方便,涉及机密的公司不可能提供镜像给公网,所以需要创建一个本地私人仓库供团队使用,基于公司内部项目构建镜像
Docker Registry 是官方提供的工具,可以用于构建私有仓库
3.1、 什么是Docker Registry
3.2、Docker Registry操作指南
3.2.1、下载镜像Docker Registry
docker pull registry # 拉取docker Registry镜像

3.2.2、运行私有库Registry,相当于本地私有Docker Hub
# docker run命令用于启动一个 Docker Registry 私有仓库容器
# -d 后台运行模式
# -p 5000:5000 端口映射:将宿主主机的5000端口映射到容器内部的5000端口。(这样就可以通过宿主主机IP的5000端口访问Registry服务)
# -v 数据卷挂载 将宿主机的/usr*/local/data 目录挂载到容器内的/tmp/registry目录。
# Registry仓库中存储的镜像数据会持久化在宿主机上,防止因容器删除而丢失
# --privileged=true 授予容器特权模式(容器和宿主机几乎有相同的权限)
# registry 代表所要运行的镜像名称
docker run -d -p 5000:5000 -v /usr/docker/data:/tmp/registry --privileged=true registry

3.2.3、案例(创建一个新镜像,ubuntu上安装ipconfig命令)
docker run -it ubuntu /bin/bash # 跑一个ubuntu实例容器,同时进入容器
ifconfig # 发现是没有该命令的
apt-get update # 获取软件源中所有软件包的最新版本、依赖关系等信息,更新本地数据库
apt-get install net-tools # 安装ifonfig命令
ifconfig
新的ubuntu实例容器中是没有

获取ubuntu实例容器的ID

使用commit具有ifconfig命令的ubuntu新镜像
docker commit -m="add ifconfig cmd" -a="radan" 32da038ebdb6 myubuntu_addifconfig:1.0

3.2.4、curl 验证私有服务库上有什么镜像
curl -XGET http://192.168.17.131:5000/v2/_catalog

3.2.5、将新镜像myubuntu_addipconfig:1.0修改为符合私服规范的TAG
规范公式:docker tag 镜像:Tag HostIp:Port/Repository:Tag
Host:Ip 是自己host主机IP地址,填写宿主机的IP
# 将myubuntu_addifconfig:1.0的镜像改名为192.168.17.131:5000/myubuntu_addifconfig:1.0 (相当于克隆了一份)
docker tag myubuntu_addifconfig:1.0 192.168.17.131:5000/myubuntu_addifconfig:1.0

3.2.6、修改配置文件使之支持http
由于Docker的私服库做了安全加密,所以不支持https(需要单独配置,取消限制)
使用vi命令 修改 /etc/docker/daemon.json文件,加入以下字符:
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.imgdb.de",
"https://docker-0.unsee.tech",
"https://docker.hlmirror.com"
],
"insecure-registries":["192.168.17.131:5000"] # 指定允许使用 HTTP 协议(而非 HTTPS)连接的镜像仓库地址
}
注:docker默认不允许https方式推送镜像,通过配置选项来取消这个限制(修改后如果不起作用,需要重启docker)
重启docker和私服库
systemctl restart docker # 重启docker
# 重启docker私服库
docker run -d -p 5000:5000 -v /usr/docker/data:/tmp/registry --privileged=true registry
docker ps

3.2.7、push推送到私服库并验证私服库当中的镜像
# 往私服库当中上传镜像
docker push 192.168.17.131:5000/myubuntu_addifconfig:1.0
# 验证本地的docker registry 仓库中是否有刚刚上传的镜像
curl -XGET http://192.168.17.131:5000/v2/_catalog

3.2.8、将私服库的镜像pull到本地进行下载


更多推荐

所有评论(0)