docker学习(四)--仓库

简介: docker中仓库使用

一、第三方仓库

 

二、私有仓库搭建使用

2.1私有仓库搭建

docker私有仓库搭建很简单,一条命令即可.

docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry:2

-p 5000:5000 表示将linux的5000映射到docke容器的5000端口。你可以理解为监听linux的5000端口

-v /opt/data/registry:/var/lib/registry 表示将镜像存放到linux宿主机的/opt/data/registry目录,默认镜像存放在容器的/var/lib/registry目录。

registry:2 表示从远程仓库下载的镜像

还可加上

--restart=always  : 自动重启

--name registry    :仓库名称

可以看到私有仓库已经搭建成功,并创建了一个4be7da92的容器。

执行curl -X GET http://127.0.0.1:5000/v2/_catalog收到的响应如下,是个json对象,其中repositories对应的值是空的json数组,表示目前仓库里还没有镜像:

[root@adsl-172-10-101-250 /]# curl -X GET http://127.0.0.1:5000/v2/_catalog

{"repositories":[]}

2.2支持http协议推送

docker默认使用https协议实现镜像的推送,如果你直接使用docker push命令会报错。这里我们改为让他支持http协议。

参看网上教程第一步修/etc/default/docker文件,在该文件中增加DOCKER_OPTS="--insecure-registries ip:port"

有的同学可能并没有该文件,这是docker版本的原因,高版本的docker在/etc/docker/daemon.json文件中加入。"insecure-registries":["ip:port"]即可。具体如下,如果配置了镜像仓库代理,那么两者需要,隔开。其中ip为你linux的ip,port为刚才我们监听的端口号。

再修改 /lib/systemd/system/docker.service。增加EnvironmentFile=-/etc/docker/daemon.json

此句表示使用daemon.json做为环境配置.

执行以下命令,重新加载配置信息再重启docker服务:

 systemctl daemon-reload;service docker restart

2.3镜像上传到私有仓库

1.为要推送到私有仓库的镜像打标签,注意标签的格式为ip:port/imageName。注意一定要这种格式。至于为什么,还有待考察。

2.使用push推动到私有仓库

    3.查看私有仓库

使用curl -X GET http://127.0.0.1:5000/v2/_catalog,可以看到myhello镜像。注意因为我们在本机操作所以使用127.0.0.1可以看到输出,最好还是使用本机ip地址。

2.3从私有仓库下载镜像

 为了演示效果,先删除已有172.10.101.250:5000/myhello镜像。

docker rmi 172.10.101.250:5000/myhello

然后从私有仓库获取镜像

docker pull 172.10.101.250:5000/myhello

2.4运行私有仓库下载的镜像

docker run -it 172.10.101.250:5000/myhello

三、杂项

3.1如何进入仓库容器?

我们一般使用exec进入到容器的bash,命令为 docker exec -it 4be7da92d986 /bin/bash,可是报错了。因为仓库镜像的基础镜像是alpine,他没有bash,但是他有sh,所以应该为docker exec -it 4be7da92d986 sh

参考

1.详解docker私有仓库搭建与使用实战

2.alpine docker exec: "/bin/bash": stat /bin/bash: no such file or directory 解决方案

3.registry的Dockerfile

目录
相关文章
|
2月前
|
运维 虚拟化 开发者
Docker-全面详解(学习总结---从入门到深化)
Docker-全面详解(学习总结---从入门到深化)
48 1
|
3月前
|
分布式计算 Java Linux
【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(Dockerfile使用手册)
Docker 是一套构建在 Linux 内核之上的高级工具,旨在帮助开发人员和运维人员更轻松地交付应用程序和依赖关系,实现跨系统和跨主机的部署。使用安全且轻量级的容器环境来实现这一目标。容器可以手动创建,也可以通过编写 Dockerfile 自动创建。开发人员和运维人员可以将应用程序及其依赖打包到容器中,实现应用程序的可移植性和环境一致性。
116 5
【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(Dockerfile使用手册)
|
23小时前
|
监控 Docker 容器
Docker从入门到精通:Docker log 命令学习
了解 Docker 日志管理对容器监控至关重要。`docker logs` 命令用于查看和管理容器日志,例如,`docker logs <container_name>` 显示容器日志,`-f` 或 `--follow` 实时跟踪日志,`--tail` 显示指定行数,`--timestamps` 添加时间戳,`--since` 按日期筛选。Docker 支持多种日志驱动,如 `syslog`,可通过 `--log-driver` 配置。有效管理日志能提升应用程序的稳定性和可维护性。
2 0
|
4月前
|
Cloud Native 安全 应用服务中间件
云原生|docker本地仓库的搭建(简易可快速使用的本地仓库)(修订版)
云原生|docker本地仓库的搭建(简易可快速使用的本地仓库)(修订版)
133 0
|
1月前
|
网络协议 网络安全 Docker
docker离线搭建仓库
docker离线搭建仓库
39 4
|
2月前
|
Ubuntu 应用服务中间件 Docker
docker-学习
docker-学习
22 0
|
2月前
|
消息中间件 RocketMQ Docker
分布式事物【RocketMQ事务消息、Docker安装 RocketMQ、实现订单微服务、订单微服务业务层实现】(八)-全面详解(学习总结---从入门到深化)
分布式事物【RocketMQ事务消息、Docker安装 RocketMQ、实现订单微服务、订单微服务业务层实现】(八)-全面详解(学习总结---从入门到深化)
53 0
|
2月前
|
Java 测试技术 Maven
云效问题之构建docker镜像从容器仓库拉取镜像报错如何解决
云效镜像是指存储在阿里云效服务中的容器镜像,它们可以用于持续集成和持续部署(CI/CD)流程中;本合集将介绍如何在云效平台上管理和使用镜像资源,以及常见的镜像问题和解决办法。
66 0
|
3月前
|
存储 运维 Linux
精彩推荐 | 【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(实战技术总结)
在使用Docker时,管理维护工作可能会显得复杂。然而,实际上,Docker提供了许多便捷且人性化的工具,这些工具的使用技巧可以大大简化维护工作,并提升效率。通过掌握这些技巧,你不仅能够更轻松地管理Docker环境,还能展现出专业的能力。接下来我们就给大家介绍一下对于我在工作当中对于Docker容器使用的技术实战总结
48 2
精彩推荐 | 【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(实战技术总结)
|
3月前
|
消息中间件 RocketMQ Docker
分布式事物【RocketMQ事务消息、Docker安装 RocketMQ、实现订单微服务、订单微服务业务层实现】(八)-全面详解(学习总结---从入门到深化)(下)
分布式事物【RocketMQ事务消息、Docker安装 RocketMQ、实现订单微服务、订单微服务业务层实现】(八)-全面详解(学习总结---从入门到深化)
30 0