您的位置:首页 > 运维架构 > Docker

docker 局域网仓库(registry)

2017-10-20 22:13 127 查看
sudo docker pull daocloud.io/registry
安装仓库(registry)
使用daocloud/aliyun镜像吧,官网仓库真心没法用

sudo docker run --name registry --restart=always -d -p 5000:5000 registry
-d:启动一个守护进程程序(长任务)
-p:指定端口号,一般为port1:port2形式,port1是宿主机器监听的端口,port2是对应的docker监听的程序
--name:指定镜像名称
--restart=alway,随着docker服务而启动,同时保留仓库信息
如果启动成功,通过
sudo lsof -i:5000
将会看到有docker进程在监听

sudo docker tag XXXX 10.1.108.108:5000/centos
XXX代表imageID,可以通过sudo docker images中查看,添加了前缀10.1.108.108代表这个镜像是可以添加到本地(如果指定为127.0.0.1)/远程(如果指定是远程IP)仓库的,在调用push的时候,自动会解析前缀将其提交。
另外注意起的名称一定要都是小写,不能有大写,否则回报错

sudo docker push 10.1.108.108:5000/centos
将镜像提交到指定的仓库(由前缀决定)

sudo docker pull 10.1.108.108:5000/centos
某客户端从局域网仓库中拉取docker

碰到的问题:
Error while pulling image: Get http://10.1.108.108:5000/v1/repositories/centos/images: dial tcp 10.1.108.108:5000: getsockopt: connection refused
代表对方并没有启动仓库服务,两种可能:第一种是IP错误;第二种是docker的仓库服务没有启动

Error: image centos:latest not found
没有将镜像push到仓库里面,找不到对应的镜像(centos:latest)

Get https://10.1.108.108:5000/v1/_ping: http: server gave HTTP response to HTTPS client
这个异常代表服务器端只是支持http,但是客户端却使用https;
在客户端机器上面的/etc/docker/daemon.json里面添加如下内容即可:
{
"insecure-registries" : ["10.1.108.108:5000"]
}
代表向指定register请求的时候不需要https(这个不安全)
如果有多的仓库,可以在“[]”中添加多个。
这里注意:docker私服配置文件修改后,要重启docker才能够生效

sudo docker run --name registry --restart=always -d -p 5000:5000 registry
-d:启动一个守护进程程序(长任务)
-p:指定端口号,一般为port1:port2形式,port1是宿主机器监听的端口,port2是对应的docker监听的程序
--name:指定镜像名称
--restart=alway,随着docker服务而启动,同时保留仓库信息
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: