使用docker-hub
使用docker hub 需要其账号
基本操作
查找镜像
sudo docker search centos
每个用户有自己的命名空间,如:centos是存仓库中的镜像文件,admln/centos则是admln镜像库中的镜像文件
下载镜像
sudo docker pull centos
上传镜像
sudo docker push centos
存储库
1.私有库
2.公共库
3.组织和机构
一个私人仓库有用的地方在于你可以分享给你团队的成员或者你的组织成员
自动构建
自动创建(Automated Builds)功能对于需要经常升级镜像内程序来说,十分方便。 有时候,用户创建了镜像,安装了某个软件,如果软件发布新版本则需要手动更新镜像
自动创建允许用户通过 Docker Hub 指定跟踪一个目标网站(目前支持 GitHub 或 BitBucket)上的项目,一旦项目发生新的提交,则自动执行创建
工作原理是添加一个GitHub或者BitBucket的仓库钩子,当你推送提交的时候就会触发构建和更新
- 1.创建一个Docker Hub账户并且登陆
- 2.通过“Link Accounts”按钮连接你的GitHub或者BitBucket
- 3.配置自动化构建
- 4.选择一个
Github
和BitBucket
项目来构建你想要构建的Dockerfile
- 5.选择你想建立的分支(默认是主分支)
- 6.给自动构建创建一个名称
- 7.指定一个Docker标签来构建
- 8.指定Dockerfile的路径,默认是
/
私有仓库
有时候使用 Docker Hub 这样的公共仓库可能不方便,用户可以创建一个本地仓库供私人使用
docker-registry
是官方提供的工具,可以用于构建私有的镜像仓库
安装
方法一、
通过下载 registry 镜像运行来实现私服的搭建
sudo docker run -d -p 5000:5000 registry
默认放在/tmp/registry,可以指定目录
sudo docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry
方法二、
对于 Ubuntu 或 CentOS 等发行版,可以直接通过源安装
centos:
sudo yum install -y python-devel libevent-devel python-pip gcc xz-devel
sudo python-pip install docker-registry
也可以从 docker-registry 项目下载源码进行安装
... ...
在私有仓库上传、下载、搜索镜像
创建好私有仓库之后,就可以使用 docker tag
来标记一个镜像,然后推送它到仓库,别的机器上就可以下载下来了。例如私有仓库地址为 192.168.7.26:5000
例如
使用docker tag
将 test 这个镜像标记为 192.168.7.26:5000/test
sudo docker tag test 192.168.7.26:5000/test
使用 docker push
上传标记的镜像
sudo docker push 192.168.7.26:5000/test
用 curl 查看仓库中的镜像
curl http://192.168.7.26:5000/v1/search
以到另外一台机器去下载这个镜像
sudo docker pull 192.168.7.26:5000/test
批量上传
wget https://github.com/yeasy/docker_practice/raw/master/_local/push_images.sh; sudo chmod a+x push_images.sh ./push_images.sh ubuntu:latest centos:centos7
私有仓库配置文件
可以直接使用它们来进行开发或生产部署
可以看到
本地私有仓库默认保存在/tmp/registry 中
私有仓库可以搭建在其他地方例如S3或者其他存储设备