Docker Hub
目前 Docker 官方维护了一个公共仓库 Docker Hub,其中已经包括了数量超过 15000 的镜像。大部分需求都可以通过在 Docker Hub 中直接下载镜像来实现。
注册登录:
可以在 https://hub.docker.com 免费注册一个 Docker 账号。
在命令行界面执行 docker login 输入用户名及密码来完成在命令行界面登录 Docker Hub。
可以通过 docker logout 退出登录。
拉取镜像:
可以通过 docker search 命令来查找官方仓库中的镜像,并利用 docker pull 命令来将它下载到本地。
推送镜像:
用户也可以在登录后通过 docker push 命令来将自己的镜像推动到 Docker Hub。
docker 推送的镜像有命名规则,需要重新命名。
登录 Docker Hub,进行推送
登录 Docker Hub 就可以看见推送上去的镜像了。
私有仓库:
有时候使用 Docker Hub 这样的公共仓库可能不太方便,用户可以创建一个本地仓库供私人使用。比如,基于公司内部项目构建的镜像。
docker-registry 是官方提供的工具,可以用于构建私有的镜像仓库。
-
安装运行 docker-registry
-
可以通过获取官方 registry 镜像来运行。默认情况下,仓库会被创建在容器的 /var/lib/registry 目录下。
-
可以通过 -v 参数来将镜像文件存放在本地的指定路径。
-
# docker 运行取名为 registry 后台运行 5000端口映射到数组机(服务器)5000端口 启动 挂载目录,把容器 /var/lib/registry 挂载到 数组机(服务器) /opt/data/regitry
docker run --name registry -d -p 5000:5000 --restart=always -v /opt/data/registry:/var/lib/registry registry
-
在私有仓库上传、搜索、下载镜像
-
创建好私有的仓库之后,就可以使用 docker tag 来标记一个镜像,然后推送它到仓库。
-
现在本机查看已有的镜像。
-
docker image ls
- 使用 docker tag 将 session-web:latest 这个镜像标记为 127.0.0.1:5000/session-web:latest 格式为 docker tag IMAGE[:TAG] [REGISTRY_HOST[:REGISTRY_PORT]/]REPOSITORY[:TAG]
docker tag session-web:latest 127.0.0.1:5000/session-web:latest
- 使用 docker push 上传标记的镜像
docker push 127.0.0.1:5000/session-web:latest
- 用 curl 查看仓库中的镜像
curl 127.0.0.1:5000/v2/_catalog
如果可以看到 {"repositories":["session-web"]} ,表明镜像已经被成功上传了。
- 先删除已有镜像,再尝试从私有仓库中下载这个镜像。
docker image rm 127.0.0.1:5000/session-web:latest docker pull 127.0.0.1:5000/session-web:latest
来源:CSDN
作者:火丁泡
链接:https://blog.csdn.net/dsx_123456/article/details/103843219