1、查看docker的版本信息

# docker version
Client:
 Version:18.03.0-ce
 API version:1.37
 Go version:go1.9.4
 Git commit:0520e24
 Built:Wed Mar 21 23:09:15 2018
 OS/Arch:linux/amd64
 Experimental:false
 Orchestrator:swarm
Server:
 Engine:
  Version:18.03.0-ce
  API version:1.37 (minimum version 1.12)
  Go version:go1.9.4
  Git commit:0520e24
  Built:Wed Mar 21 23:13:03 2018
  OS/Arch:linux/amd64
  Experimental:false

2、搭建本地私有仓库

# mkdir -p /opt/data/registry
# sudo docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry
Unable to find image 'registry:latest' locally
latest: Pulling from library/registry
81033e7c1d6a: Pull complete 
b235084c2315: Pull complete 
c692f3a6894b: Pull complete 
ba2177f3a70e: Pull complete 
a8d793620947: Pull complete 
Digest: sha256:672d519d7fd7bbc7a448d17956ebeefe225d5eb27509d8dc5ce67ecb4a0bce54
Status: Downloaded newer image for registry:latest
3e7d9879c53bc6d0e9001c939933dc17a71a861d85f8bf5942e4873a78fd0d65
# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
test/centos         v1                  f6874eba64af        4 minutes ago       69.8MB
ubuntu              latest              452a96d81c30        10 days ago         79.6MB
hello-world         latest              e38bc07ac18e        3 weeks ago         1.85kB
centos              latest              e934aafc2206        4 weeks ago         199MB
registry            latest              d1fd7d86a825        3 months ago        33.3MB
google/cadvisor     latest              75f88e3ec333        5 months ago        62.2MB

3、为容器做标记

# docker tag ubuntu:latest 10.0.0.143:5000/test
# docker images
REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
test/centos            v1                  f6874eba64af        6 minutes ago       69.8MB
10.0.0.143:5000/test   latest              452a96d81c30        10 days ago         79.6MB
ubuntu                 latest              452a96d81c30        10 days ago         79.6MB
hello-world            latest              e38bc07ac18e        3 weeks ago         1.85kB
centos                 latest              e934aafc2206        4 weeks ago         199MB
registry               latest              d1fd7d86a825        3 months ago        33.3MB
google/cadvisor        latest              75f88e3ec333        5 months ago        62.2MB

4、上传镜像到仓库

# docker push 10.0.0.143:5000/test
The push refers to repository [10.0.0.143:5000/test]
Get https://10.0.0.143:5000/v2/: http: server gave HTTP response to HTTPS client

报错说明:Docker从1.3.x之后,与docker registry交互默认使用的是https,但是此处搭建私有仓库却只提供http服务,所以当和私有仓库交互时报上述错误。因此需要在启动docker server时增加启动参数为默认使用http访问


5、解决方法:

# vim /usr/lib/systemd/system/docker.service  
# ExecStart=/usr/bin/dockerd
ExecStart=/usr/bin/dockerd --registry-mirror=https://ag3w25ij.mirror.aliyuncs.com --insecure-registry 10.0.0.143:5000
# systemctl restart docker.service
Warning: docker.service changed on disk. Run 'systemctl daemon-reload' to reload units.
# systemctl daemon-reload
# systemctl restart docker.service
# docker push 10.0.0.143:5000/test
The push refers to repository [10.0.0.143:5000/test]
Get http://10.0.0.143:5000/v2/: dial tcp 10.0.0.143:5000: getsockopt: connection refused
# lsof -i :5000
# sudo docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry
2366bf18e5e14a776a96342598091f699356a619faf3bbe8e0b7848f017290fe
# docker push 10.0.0.143:5000/test
The push refers to repository [10.0.0.143:5000/test]
059ad60bcacf: Pushed 
8db5f072feec: Pushed 
67885e448177: Pushed 
ec75999a0cb1: Pushed 
65bdd50ee76a: Pushed 
latest: digest: sha256:90f24abe180424046a5d53f6fc6f9fdb8f79b835cb2fd7d1a782e4c30dfb5dcc size: 1357