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月前
|
存储 Ubuntu Linux
学习docker
学习docker
35 1
|
2月前
|
NoSQL Linux Redis
Docker学习二(Centos):Docker安装并运行redis(成功运行)
这篇文章介绍了在CentOS系统上使用Docker安装并运行Redis数据库的详细步骤,包括拉取Redis镜像、创建挂载目录、下载配置文件、修改配置以及使用Docker命令运行Redis容器,并检查运行状态和使用Navicat连接Redis。
301 3
|
2月前
|
运维 Kubernetes 开发者
Docker Swarm学习
【10月更文挑战第5天】
40 3
|
2月前
|
Kubernetes Linux 持续交付
docker容器学习
【10月更文挑战第1天】
39 1
|
3月前
|
Docker 容器
Docker自建仓库之Harbor高可用部署实战篇
关于如何部署Harbor高可用性的实战教程,涵盖了从单机部署到镜像仓库同步的详细步骤。
160 15
Docker自建仓库之Harbor高可用部署实战篇
|
3月前
|
存储 Kubernetes Cloud Native
部署Kubernetes客户端和Docker私有仓库的步骤
这个指南涵盖了部署Kubernetes客户端和配置Docker私有仓库的基本步骤,是基于最新的实践和工具。根据具体的需求和环境,还可能需要额外的配置和调整。
95 1
|
2月前
|
网络协议 应用服务中间件 nginx
私有的docker私有镜像站仓库harbor
私有的docker私有镜像站仓库harbor
|
3月前
|
存储 Ubuntu Docker
Docker学习
Docker学习
63 4
|
3月前
|
存储 测试技术 数据安全/隐私保护
Docker自建仓库之Harbor部署实战
关于如何部署和使用Harbor作为Docker企业级私有镜像仓库的详细教程。
798 12
|
2月前
|
Linux 应用服务中间件 Shell
docker学习--docker容器镜像常用命令大全(简)
本文档详细介绍了Docker中的镜像命令与容器管理命令。镜像命令部分涵盖了镜像搜索、下载、上传等操作;容器管理命令则包括了容器的创建、启动、停止、删除及日志查看等功能。通过具体示例,帮助用户更好地理解和使用Docker相关命令。
169 0