仓库镜像
Docker hub官方已提供容器镜像registry,用于搭建私有仓库
#docker imagers #查看一下自己有哪些镜像
1.拉取镜像:
# docker pull daocloud.io/library/registry:latest
2.运行容器:
# docker run --name “pri_registry” --restart=always -d -p 5000:5000 daocloud.io/library/registry //restart=always:开机自启,服务重启的时候也会跟着启动起来。映射到宿主机的5000端口,和自己5000的端口 -d 是放到后台使用
#docker ps #看一下启动状态
注:如果创建容器不成功,报错防火墙,解决方案如下
#systemctl stop firewalld
#yum install iptaqbles*
#systemctl start iptables
#iptables -F
#systemctl restart docker
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1f444285bed8 daocloud.io/library/registry "/entrypoint.sh /etc/" 23 seconds ago Up 21 seconds 0.0.0.0:5000->5000/tcp elegant_rosalind
3.连接容器查看端口状态:
# docker exec -it 1f444285bed8 /bin/sh //这里是sh 不是bash
/# netstat -lnp //查看5000端口是否开启
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 :::5000 :::* LISTEN 1/registry
Active UNIX domain sockets (only servers)
Proto RefCnt Flags Type State I-Node PID/Program name Path
#ctrl+q+p 退出编辑页面,但不退出容器
4.在本机查看能否访问该私有仓库,看看状态码是不是200
[root@master registry]# curl -I 127.0.0.1:5000 //参数是大写的i
HTTP/1.1 200 OK
为了方便,下载1个比较小的镜像,buysbox
# docker pull busybox
上传前必须给镜像打tag 注明ip和端口:
# docker tag busybox 本机IP:端口/busybox
这是直接从官方拉的镜像,很慢:
# docker tag busybox 192.168.245.136:5000/busybox
下面这个Mysql是我测试的第二个镜像,从daocloud拉取的:
# docker tag daocloud.io/library/mysql 192.168.245.136:5000/daocloud.io/library/mysql
注:tag后面可以使用镜像名称也可以使用id,我这里使用的镜像名称,如果使用官方的镜像,不需要加前缀,但是daocloud.io的
得加前缀
以下报错是会必出的报错问题:
修改请求方式为http:
默认为https,不改会报以下错误:
Get https://master.up.com:5000/v1/_ping: http: server gave HTTP response to HTTPS client
# vim /etc/docker/daemon.json
{ "insecure-registries":["192.168.245.136:5000"] }
重启docker:
# systemctl restart docker
上传镜像到私有仓库:
# docker push 192.168.245.136:5000/busybox #推送到私有仓库上去
# docker push 192.168.245.136:5000/daocloud.io/library/mysql
查看私有仓库里的所有镜像:
注意我这里是用的是ubuntu的例子
# curl 192.168.245.130:5000/v2/_catalog
{"repositories":["daocloud.io/ubuntu"]}
或者:
# curl http://192.168.245.130:5000/v2/daocloud.io/ubuntu/tags/list
{"name":"daocloud.io/ubuntu","tags":["v2"]}
可以拉去镜像测试:
#docker pull 192.168.245.136:5000/busybox