版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37049050/article/details/82592590
docker使用现有容器生成新的镜像
基本形式:
docker commit -m "change somth" -a "somebody info" container_id(docker ps -a获取id) 新镜像名字
eg.
Ian
docker commit -m "install httpd" -a ”frank ie" 2c74d574293f frankie/centos
环境准备
环境:两个装有Docker 17.09.0-ce 的centos7虚拟机
虚拟机一:192.168.0.154 用户开发机
虚拟机二:192.168.0.153 用作私有仓库
搭建私有仓库
在153机器上下载registry镜像:
docker pull registry
先启动容器:
docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry
之后可以使用查看命令:
docker ps
可以看到启动的容器以及端口。
可以在网页访问 :http://192.168.0.153:5000/v2/_catalog 查看私有仓库中的镜像。
之后需要修改154 的配置,在 /etc/docker/daemon.json写入:
{
"registry-mirrors": [
"https://kv3qfp85.mirror.aliyuncs.com"
],
"insecure-registries": [
"192.168.0.153:5000"
]
}
重启docker
sudo systemctl restart docker
测试:现将本地镜像添加tag
docker tag busybox 192.168.0.153:5000/busybox
接下来把打了tag的镜像上传到私有仓库。
docker push 192.168.0.153:5000/busybox
上传后可以通过网页访问该地址查看上传的镜像 返回的是一个json:
http://192.168.0.153:5000/v2/_catalog
接下来我们从私有仓库中pull下来该镜像。
sudo docker pull 192.168.0.153:5000/busybox
如果是ubuntu 免sudo 的配置如下:
如果还没有 docker group 就添加一个:
sudo groupadd docker
将用户加入该 group 内。然后退出并重新登录就生效啦。
sudo gpasswd -a ${USER} docker
重启 docker 服务
sudo service docker restart
group 或者重启 X 会话
newgrp - docker
或者
pkill X
删除
1.打开镜像的存储目录,如有-V操作打开挂载目录也可以,删除镜像文件夹
$ docker exec <容器名> rm -rf /var/lib/registry/docker/registry/v2/repositories/<镜像名>
2.执行垃圾回收操作,注意2.4版本以上的registry才有此功能
$ docker exec registry bin/registry garbage-collect /etc/docker/registry/config.yml
3.重启