本帖最后由 灰哥哥 于 2018-10-26 21:09 编辑
1、docker 用户进ubuntu
2、执行如下命令
- docker run -d -p 5000:5000 --restart=always -v /opt/data/registry:/var/lib/registry registry:latest
复制代码 这样就搭建好了,
3、验证
- myEdgex@instance-nbpv5z80:~/docker-compose$ curl http://localhost:5000/v2/_catalog
- {"repositories":[]}
复制代码 有返回{"repositories":[]} ,说明安装成功了。
4、配置registry2
在使用之前,修改配置一下(需要root用户权限)
- vim /lib/systemd/system/docker.service
复制代码 按下图修改:
重启docker:
- myEdgex@instance-nbpv5z80:~/docker-compose$ sudo systemctl daemon-reload
- myEdgex@instance-nbpv5z80:~/docker-compose$ sudo systemctl restart docker.service
复制代码
查看状态:
- sudo systemctl status docker.service
复制代码
5、使用registry2
5.1 制作镜像
- sudo docker build -t my/volume .
复制代码 或导入镜像
- docker load -i myvolume.tar
- (导出方法 :sudo docker save -o myvolume.tar my/volume
复制代码
5.2、打tag
- docker tag etrol/volume 127.0.0.1:5000/my/volume
复制代码
5.3、push 到 registry
- docker push 127.0.0.1:5000/my/volume
复制代码
6、配置带用户权限的registry
registry已经可以使用了。如果想要控制registry的使用权限,使其只有在登录用户名和密码之后才能使用的话,还需要做额外的设置。
registry的用户名密码文件可以通过htpasswd来生成:
- mkdir /opt/registry/auth/
- docker run --entrypoint htpasswd registry:2.1.1 -Bbn root 123456 >> /opt/registry/auth/htpasswd
复制代码
上面这条命令是为root用户名生成密码为123456的一条用户信息,存在/opt/registry/auth/htpasswd文件里面,文件中存的密码是被加密过的。
使用带用户权限的registry时候,容器的启动命令就跟上面不一样了,将之前的容器停掉并删除,然后执行下面的命令:
docker run -d -p 5000:5000 --restart=always -v /opt/registry/auth/:/auth/ -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd -v /opt/registry/:/var/lib/registry/ --name registry registry:2.1.1
这时,如果直接想查看仓库信息、pull或push都会出现权限报错。必须先使用docker login 命令来登录私有仓库
- docker login 192.168.0.100:5000
复制代码
根据提示,输入用户名和密码即可,输入 用户root ,密码123456
如果登录成功,会在/root/.docker/config.json文件中保存账户信息,这样就可以继续使用了。
|