Docker之私有仓库registry(一)

简介: Docker之私有仓库registry(一)

仓库(Repository)是集中存放镜像的地方,又分为公有仓库和私有仓库。

Docker Hub是Docker官方提供的最大的公共镜像仓库。

国内不少云服务商都提供了第三方镜像市场,如:腾讯云、网易云、阿里云等。

接下来讲的是用Docker部署私有仓库registry。

实验环境:

系统版本:centos7.4.1708

Docker版本:19.03.8

实验主机:

docker01:192.168.1.3

docker02:192.168.1.4(作为仓库)

使用Docker启动私有仓库registry:(docker02)

# docker run -d -p 5000:5000 \
> --restart=always \
> -v /opt/myregistry:/var/lib/registry \
> --name registry \
> registry
# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
fcd85446d866        registry            "/entrypoint.sh /etc…"   10 seconds ago      Up 9 seconds        0.0.0.0:5000->5000/tcp   registry
#以上各项参数说明:
-d:后台运行
-p 5000:5000:映射本地5000端口到容器的5000端口
--restart=always:docker重启时容器自动重启
-v /opt/myregistry:/var/lib/registry:挂在本地目录到容器目录
--name registry:设置容器别名

修改docker配置文件:(docker01)

# vim /etc/docker/daemon.json 
# cat /etc/docker/daemon.json 
{
  "registry-mirrors":["https://655dds7u.mirror.aliyuncs.com"],
  "insecure-registries":["192.168.1.4:5000"]
}
# systemctl restart docker

上传镜像测试:

# docker tag nginx:latest 192.168.1.4:5000/nginx:latest
# docker push 192.168.1.4:5000/nginx:latest
The push refers to repository [192.168.1.4:5000/nginx]
b3003aac411c: Pushed 
216cf33c0a28: Pushed 
c2adabaecedb: Pushed 
latest: digest: sha256:cccef6d6bdea671c394956e24b0d0c44cd82dbe83f543a47fdc790fadea48422 size: 948

给私有仓库做加密认证:(docker02)

# yum -y install httpd-tools
# mkdir -p /opt/registry-var/auth
# htpasswd -Bbn yyang 123123 >>/opt/registry-var/auth/htpasswd

删除之前的仓库:(docker02)

# docker stop 2d4fc1d56733
# docker rm 2d4fc1d56733

重新启动一个新容器:(docker02)

# docker run -d -p 5000:5000 -v /opt/registry-var/auth/:/auth/ -v /opt/myregistry:/var/lib/registry -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd --name registry registry

上传镜像测试:(docker01)

# docker push 192.168.1.4:5000/nginx:latest 
The push refers to repository [192.168.1.4:5000/nginx]
b3003aac411c: Preparing 
216cf33c0a28: Preparing 
c2adabaecedb: Preparing 
no basic auth credentials
# docker login http://192.168.1.4:5000
Username: yyang
Password: 
# docker push 192.168.1.4:5000/ubuntu:latest 
The push refers to repository [192.168.1.4:5000/ubuntu]
8891751e0a17: Pushed 
2a19bd70fcd4: Pushed 
9e53fd489559: Pushed 
7789f1a3d4e9: Pushed 
latest: digest: sha256:5747316366b8cc9e3021cd7286f42b2d6d81e3d743e2ab571f55bcd5df788cc8 size: 1152

发现需要先登录仓库才能上传镜像,下载方式相同。

此实验到此为结束。

目录
相关文章
|
3月前
|
存储 数据可视化 数据安全/隐私保护
使用 Docker Compose 部署 Docker Registry
【1月更文挑战第2天】 在内网环境中,我们期望能够在本地共享镜像。为了解决这一问题,Docker Registry成为了我们的救星。Docker Registry是一个用于存储和管理Docker镜像的开源工具。通过在本地部署Docker Registry,您可以轻松地构建、存储和分享自己的Docker镜像。
160 3
使用 Docker Compose 部署 Docker Registry
|
4月前
|
关系型数据库 MySQL Linux
Linux 本地 Docker Registry本地镜像仓库远程连接
Linux 本地 Docker Registry本地镜像仓库远程连接
121 0
|
5月前
|
JSON Kubernetes Docker
k8s 集群中运行 docker registry 镜像仓库
k8s 集群中运行 docker registry 镜像仓库
628 0
|
7月前
|
存储 网络安全 数据安全/隐私保护
Docker harbor私有仓库部署与管理-2
Docker harbor私有仓库部署与管理
113 0
|
7月前
|
应用服务中间件 nginx 数据安全/隐私保护
Docker harbor私有仓库部署与管理-1
Docker harbor私有仓库部署与管理
144 0
|
1月前
|
存储 Java Maven
|
1月前
|
关系型数据库 MySQL Linux
如何在Linux上搭建本地Docker Registry镜像仓库并实现公网访问
如何在Linux上搭建本地Docker Registry镜像仓库并实现公网访问
|
7月前
|
数据库 数据安全/隐私保护 Docker
Docker harbor私有仓库部署与管理-3
Docker harbor私有仓库部署与管理
110 0
|
3月前
|
关系型数据库 MySQL Linux
Docker Registry本地镜像仓库部署并实现远程连接拉取镜像
Docker Registry本地镜像仓库部署并实现远程连接拉取镜像
160 1
|
4月前
|
Kubernetes 安全 测试技术
Docker|kubernetes|本地镜像批量推送到Harbor私有仓库的脚本
Docker|kubernetes|本地镜像批量推送到Harbor私有仓库的脚本
108 0