ubuntu16.4创建私有仓库registry
1.安装docker
本地测试环境:192.168.31.223
系统:Ubuntu 16.04
shell> sudo apt-get install apt-transport-https ca-certificates
shell> sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
shell> lsb_release -c
shell> sudo cat <<EOF > /etc/apt/sources.list.d/docker.list
deb https://apt.dockerproject.org/repo ubuntu-xenial main
EOF
shell> vim /etc/apt/sources.list.d/docker.list
shell> sudo apt-get update
shell> sudo apt-get install -y linux-image-extra-$(uname -r)
shell> apt-cache policy docker-engine (查看下现有的源)
shell> sudo apt-get install -y docker-engine=1.12.6-0~ubuntu-xenial (指定安装的版本)
- 检查是否安装完毕
shell> docker --version
- 显示结果如下
Docker version 1.12.6, build 78d1802
2.安装registry
- 创建密码文件
shell> mkdir -p /docker-hub/auth
docker run --entrypoint htpasswd registry -Bbn testuser testpassword > auth/htpasswd
说明:testuser testpassword为仓库用户名和密码
- 启动docker-hub容器
shell> docker run -d -p 5000:5000 --restart=always --name registry -v /docker-hub/registry:/var/lib/registry -v /docker-hub/auth:/auth -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd registry
- 测试使用
1.不验证身份下上传一个镜像到私有仓库
shell> docker push 192.168.31.223:5000/busybox
结果失败:The push refers to a repository [192.168.31.223:5000/busybox]
6a749002dd6a: Image push failed
2.验证身份后上传一个镜像到私有仓库
shell> docker login 192.168.31.223:5000/busybox
输入用户名和密码,提示Login Succeeded表示登录成功,再次上传
shell> docker push 192.168.31.223:5000/busybox
显示如下:The push refers to a repository [192.168.31.223:5000/busybox]
6a749002dd6a: Pushed
latest: digest: sha256:545e6a6310a27636260920bc07b994a299b6708a1b26910cfefd335fdfb60d2b size: 527
[root@agrichains-ProLiant-MicroServer-Gen8~]$ 表示上传成功