Docker官方的Docker hub (https://hub.docker.com) 是一个用于管理公共镜像的仓库,我们可以从上面拉取镜像到本地,也可以把我们自己的镜像推送上去。但是,有时候我们的服务器无法访问互联网,或者我们不希望将自己的镜像暴露到公网当中,那么我们就需要搭建自己的私有镜像仓库来存储和管理自己的镜像。
一、搭建仓库registry
下载docker仓库镜像:
[root@localhost ~]# docker search registry
[root@localhost ~]# docker pull registry
启动容器,开启5000端口映射:
[root@localhost ~]# docker run -id --name=mine_registry -p 5000:5000 registry
035d51705dd962cc24052097877f24d5c17ca9ff6186cb28485c40a27e635811
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
035d51705dd9 registry "/entrypoint.sh /etc…" 9 seconds ago Up 8 seconds 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp mine_registry
浏览器访问:虚拟机IP地址:5000/v2/_catalog,出现如下信息则搭建成功:
http://172.16.200.248:5000/v2/_catalog
修改docker客户端/etc/docker/daemon.json 文件,让docker信任刚搭建的私有仓库:
Docker仓库的配置/etc/docker/daemon.json,重启Docker:
# cat /etc/docker/daemon.json
{
"insecure-registries": ["172.16.200.248:5000"],
......
}
[root@localhost ~]# systemctl restart docker #重启生效
二、上传镜像到私有仓库registry
# docker build -t 172.16.200.248:5000/java8-mine:1.0 .
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
172.16.200.248:5000/java8-mine 1.0 4df8b6f2c3a9 9 minutes ago 396MB
# docker push 172.16.200.248:5000/java8-mine:1.0
三、从私有镜像仓库下载镜像
# docker pull 172.16.200.248:5000/java8-mine:1.0