3.6 Docker仓库操作
仓库(repository)是集中存放镜像的地方,分为公共仓库和么有仓库。
注册服务器(registry)是存放仓库的具体服务器,一个注册服务器上可以有多个仓库。
3.6.1 docker hub公共镜像仓库
docker hub 是全球最大的公共镜像仓库
地址:Docker Hub
需要去注册一个账号才可以登入。
可以搜索到各种镜像。
也可以使用docker search“关键字”来搜索镜像文件
然后通过docker image pull [OPTIONS] NAME[:TAG|@DIGEST],来拉取镜像。
pull命令详细使用方法,见3.1.1小节
3.6.2搭建本地私有仓库
step 1 拉取一个registry镜像
docker image pull registry:2
step 2 创建并启动registry容器
docker run -d --name registry -v /root/dockerlab/registry/:/var/lib/registry -p 5000:5000 --restart=always registry:2
命令注解:
-d 容器在后台运行
--name registry 将容器命名为registry
-v /root/dockerlab/registry/:/var/lib/registry将宿主机的/root/dockerlab/registry映射到容器的/var/lib/registry目录
-p 5000:5000 将宿主机的5000端口映射到容器的5000端口
--restart=always让容器可以自动重启
registry:2镜像文件名
docker-proxy进程会监听5000端口
查看容器的进程
docker exec registry netstat –tupln
容器中有一个PID号为1的进程registry,并监听在5000端口上。
step 3 放通宿主机的防火墙5000/TCP端口,并测试网络
firewall-cmd --add-port=5000/tcp
firewall-cmd --add-port=5000/tcp –permanent
在另外一台主机上,测试网络和服务的联通性
curl http://192.168.0.198:5000/v2/
如果会出现“{}”这个符号,则说明网络和服务是正常的。
step 4 上传镜像
在另外一台docker主机上将镜像上传到私有仓库。
先修改或创建vim /etc/docker/daemon.json文件
这里的地址就是仓库所有主机的IP和端口号。
重启docker服务
systemctl restart docker
修改下镜像文件的标签,一定要以192.168.0.198:5000为前缀
docker tag centos 192.168.0.198:5000/centos:1.0
上传镜像:
docker push 192.168.0.198:5000/centos:1.0
验证是否上传成功:
curl http://192.168.0.198:5000/v2/_catalog
出现了这个镜像名,表示上传成功。
镜像文件默认放在以下路径下:
/var/lib/registry/docker/registry/v2/repositories/
step 5 下载镜像
docker pull 192.168.0.198:5000/centos:1.0
下载成功。