Mac os 搭建docker私人仓库,并把修改的容器提交镜像push到私人仓库

Mac os 搭建docker私人仓库,并把修改的容器提交镜像push到私人仓库

一.搭建docker私人仓库

1. 安装docker

`brew cask isntall docker`

2. 运行docker私人仓库

docker-registry 是官方提供的工具,可以用于构建私有的镜像仓库

 # 拉取私人仓库镜像
docker pull registry:2 
# run
sudo docker run -d -v /Users/chenbing/Desktop/registry:/var/lib/registry -p 5000:5000 --name myregistry registry:2`

Registry服务默认会将上传的镜像保存在容器的/var/lib/registry,我们将主机的桌面目录/Users/xxx/Desktop/registry目录挂载到该目录,即可实现将镜像保存到主机的/Users/xxx/Desktop/registry目录了。

浏览器访问http://127.0.0.1:5000/v2,出现下面情况说明registry运行正常。

在这里插入图片描述

3. 在私有仓库上传、搜索、下载镜像

  • 创建好私有仓库之后,就可以使用 docker tag 来标记一个镜像,然后推送它到仓库。例如私有仓库地址为 127.0.0.1:5000。

  • 先在本机查看已有的镜像。

  • 这里我们重新拉一个镜像试试就可以

    docker pull nginx
    docker images
    docker tag nginx:latest 127.0.0.1:5000/nginx:latest
    docker push 127.0.0.1:5000/nginx:latest
    

访问 http://127.0.0.1:5000/v2/_catalog查看私有仓库目录,可以看到刚上传的镜像了

下载私有仓库的镜像,使用如下命令:

docker pull 127.0.0.1:5000/镜像名:版本号

例如

docker pull 127.0.0.1:5000/nginx:latest

二.使用内网地址作为仓库地址

如果你不想使用 127.0.0.1:5000 作为仓库地址,比如想让本网段的其他主机也能把镜像推送到私有仓库。你就得把例如 192.168.199.100:5000 这样的内网地址作为私有仓库地址,这时你会发现无法成功推送镜像。

这是因为 Docker 默认不允许非 HTTPS 方式推送镜像。我们可以通过 Docker 的配置选项来取消这个限制.

在/etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件),也可以使用图形界面配置,
在这里插入图片描述

{
  "registry-mirror": [
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
  ],
  "insecure-registries": [
    "192.168.199.100:5000"
  ]
}

然后重启docker

注意,我只在Mac上配置了发现还是会报错,所以要在需要push镜像的内网主机也要添配置。

参考文献:
Docker 私有仓库搭建

Docker —— 从入门到实践

三.修改后的容器怎么push到私人仓库

参考[通过容器提交镜像(docker commit)以及推送镜像(docker push)笔记](https://www.cnblogs.com/kevingrace/p/9599988.html)
这里借用这个例子,后面我们push到自己的私人仓库,注意docker tag修改的格式就行

docker run -ti --name myubuntu -d docker.io/ubuntu
docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
651a8541a47d        docker.io/ubuntu    "/bin/bash"         37 seconds ago      Up 36 seconds                           myubuntu
 

 
docker commit :从容器创建一个新的镜像。
# docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
 
根据这个myubuntu容器提交镜像

docker commit -a "wangshibo" -m "this is test" 651a8541a47d 192.168.199.100:5000/myubuntu:v1

# 注意我的修改的tag

再次查看镜像,发现镜像192.168.199.100:5000/myubuntu:v1已经提交到本地了
docker images

REPOSITORY                              TAG                 IMAGE ID            CREATED             SIZE
192.168.199.100:5000/myubuntu           v1                  6ce4aedd12cd        59 seconds ago      84.1 MB
docker.io/ubuntu                        16.04               7aa3602ab41e        5 weeks ago         115 MB

push到私人仓库

docker push 192.168.199.100:5000/myubuntu:v1

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值