创建私有docker镜像库过程

具体过程可以参考

docker Registry快速搭建私有镜像仓库

但是笔者按照上面链接测试发现,私有镜像存储位置并非链接上所说的/docker/registry/ 目录,而是/var/lib/registry, 因为registry镜像定义了一个路径为/var/lib/registry的volumn

如果不对该column做显示映射,docker会自动在宿主机的工作目录中创建一个目录,然后将该目录与/var/lib/registry挂接起来。

当然,大部分情况需要将镜像放到自己所创建的目录中,那需要进行显示的映射,如:

笔者需要将以后的镜像内容都放到/bigdata/docker/registry目录中,因此启动镜像的时候如下:

docker run -itd -v /bigdata/docker/registry/:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest

启动后inspect 该容器volumn信息如下

 "Mounts": [
            {
                "Type": "bind",
                "Source": "/bigdata/docker/registry",
                "Destination": "/var/lib/registry",
                "Mode": "",
                "RW": true,
                "Propagation": "rprivate"
            }
]

其中source是宿主机的目录,Destination为docker 容器的目录

此时通过push可以将镜像放到私有服务器中,具体过程可以查看

文章开头的链接。

push后的结果如下:

当然了自己也可以修改容器中存放镜像的目录,然后形成新的镜像

可以对

创建私有docker镜像库过程_第1张图片

rootdirectory进行修改也可以达到目的。

另外自动产生的挂接目录默认不会随着容器的销毁而销毁(除非加上rm -v选项),所以需要自己手动删除

删除以及查看命令如下:

docker volume ls
DRIVER              VOLUME NAME
local               477d337d74f8e618e53491dace6e764822d758bfbf404ccdfa461267edf8a573
local               4cc23bde7f55091584bd97a7836350fc1dcaa49227682148fde04b7a3c87fcdc
local               68d2659f6a00e06f838f6971f8ea109423f780679945ae81b47671798ef96afa
local               bc7cf4a9c60d71adc704752ddf0f88a741ee2d5007e5abd720dd1cacbeaef3fc
local               f33d1f239000eb310a4796a023196478f3812fdfc0bea07fcd924d048b347206

过滤不适用的volume

docker volume ls --filter dangling=true
DRIVER              VOLUME NAME
local               477d337d74f8e618e53491dace6e764822d758bfbf404ccdfa461267edf8a573
local               4cc23bde7f55091584bd97a7836350fc1dcaa49227682148fde04b7a3c87fcdc
local               68d2659f6a00e06f838f6971f8ea109423f780679945ae81b47671798ef96afa
local               bc7cf4a9c60d71adc704752ddf0f88a741ee2d5007e5abd720dd1cacbeaef3fc
local               f33d1f239000eb310a4796a023196478f3812fdfc0bea07fcd924d048b347206

查看信息
docker inspect f33d1f239000eb310a4796a023196478f3812fdfc0bea07fcd924d048b347206
[
    {
        "CreatedAt": "2024-01-26T21:19:45+08:00",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/data/docker/volumes/f33d1f239000eb310a4796a023196478f3812fdfc0bea07fcd924d048b347206/_data",
        "Name": "f33d1f239000eb310a4796a023196478f3812fdfc0bea07fcd924d048b347206",
        "Options": null,
        "Scope": "local"
    }
]

删除某个volume
 docker volume rm f33d1f239000eb310a4796a023196478f3812fdfc0bea07fcd924d048b347206



你可能感兴趣的:(docker,容器,运维)