一、docker仓库
仓库是集中存放镜像文件的场所。有时候会把仓库和仓库注册服务器(Registry)混为一谈,并不严格区分。实际上,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。
仓库分为公开仓库(Public)和私有仓库(Private)两种形式。最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载。 国内的公开仓库包括 Docker Pool等,可以提供大陆用户更稳定快速的访问。
当然,用户也可以在本地网络内创建一个私有仓库。当用户创建了自己的镜像之后就可以使用 push 命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上 pull 下来就可以了。
1.Docker 官方已经把仓库封装为镜像,直接通过启动容器就可以部署完成仓库
[root@foundation50 docker]# docker images registry
REPOSITORY TAG IMAGE ID CREATED SIZE
registry latest bca04f698ba8 2 years ago 423 MB
[root@foundation50 docker]# docker run -d -p 5000:5000 -v /opt/registry:/var/lib/registry registry:2
Unable to find image 'registry:2' locally
2: Pulling from library/registry
4064ffdc82fe: Pull complete
c12c92d1c5a2: Pull complete
4fbc9b6835cc: Pull complete
765973b0f65f: Pull complete
3968771a7c3a: Pull complete
Digest: sha256:51bb55f23ef7e25ac9b8313b139a8dd45baa832943c8ad8f7da2ddad6355b3c8
Status: Downloaded newer image for registry:2
6a8183c460abf1488290425789e20a4d074096a0c0763c5e30c9e0f9db264e5a
[root@foundation50 docker]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6a8183c460ab registry:2 "/entrypoint.sh /e..." 13 seconds ago Up 7 seconds 0.0.0.0:5000->5000/tcp nervous_hawking
ab2d23164525 ubuntu "/bin/bash" 15 minutes ago Up 15 minutes vm1
[root@foundation50 docker]# docker stop mv1
Error response from daemon: No such container: mv1
[root@foundation50 docker]# docker stop vm1
vm1
[root@foundation50 docker]# docker rm vm1
vm1
[root@foundation50 docker]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6a8183c460ab registry:2 "/entrypoint.sh /e..." 2 minutes ago Up 2 minutes 0.0.0.0:5000->5000/tcp nervous_hawking
2.给Docker 镜像命名
[root@foundation50 docker]# ping westos.org
[root@foundation50 docker]# vim /etc/hosts ##加入本机解析 172.25.50.250 westos.org
3.推送镜像到 localhost:5000 仓库
[root@foundation50 docker]# docker tag nginx westos.org:5000/nginx
[root@foundation50 docker]# docker tag nginx localhost:5000/nginx
[root@foundation50 docker]# docker push localhost:5000/nginx
[root@foundation50 registry]# ls
docker
[root@foundation50 registry]# docker pull localhost:5000/nginx
[root@foundation50 registry]# docker rmi localhost:5000/nginx ##删除本地 nginx 镜像的 TAG
[root@foundation50 registry]# docker rmi westos.org:5000/nginx
Untagged: westos.org:5000/nginx:latest
[root@foundation50 registry]# docker rmi localhost:5000/nginx
Untagged: localhost:5000/nginx:latest
Untagged: localhost:5000/nginx@sha256:2de9d5fc6585b3f330ff5f2c323d2a4006a49a476729bbc0910b695771526e3f
[root@foundation50 registry]# docker rmi nginx
Untagged: nginx:latest
Deleted: sha256:c82521676580c4850bb8f0d72e47390a50d60c8ffe44d623ce57be521bca9869
Deleted: sha256:2c1f65d17acf8759019a5eb86cc20fb8f8a7e84d2b541b795c1579c4f202a458
Deleted: sha256:8f222b457ca67d7e68c3a8101d6509ab89d1aad6d399bf5b3c93494bbf876407
Deleted: sha2