环境准备:
阿里云ECS:4x.xx.xx.4x ( 不使用阿里云的可以搞自己的服务器地址)
OS(操作系统):centos 7.6 , 并且已经安装过docker版本,如何装docker 度娘吧。
docker 的私仓(1.8.1)安装包:harbor-offline-installer-v1.8.1.tgz (可百度到官网下)
1.cd 到 安装路径,这个因个人喜欢而定吧。我放在/home/harbor下。
2.把harbor-offline-installer-v1.8.1.tgz 考贝到/home/harbor 下进行解压缩
tar -zxvf harbor-offline-installer-v1.8.1.tgz
3.cd 到harbor. 注意这时可以pwd看下 路径在/home/harbor/harbor下了。
4.修改配置harbor.yml 文件
改两个地方:hostname: 4x.xx.xx.4x 加上你的机器地址。
port: 80 默认,可以按自己喜欢修改,我这里改为5000,改好一定要记得啊里云也要开端口啊,不然你半天连不上。
5.执行 ./prepare
6.执行./install.sh
可以知道harbor内部居然启用了一个nginx,估计主站点就挂在ng下了。
OK,现在就可以 在浏览器里输入http://4x.xx.xx.4x:5000 到主界面,注册一个用户,我这里用户名为:fengsh998按自己喜欢取啦。
登录进去后,新建一个项目,我这里建了一个testpush用来测试是否能正常使用了。
测试PUSH是否正常。随便拖镜像啦,反正是做测试用。
1.docker search oraclejdk
2.docker pull airdock/oraclejdk
3.docker run -d --name fshjdk airdock/oraclejdk
这个时候就有了个fshjdk的容器了。下面是把容器commit成镜像后,推到私有创库。
4.docker commit -m "test" fshjdk 4x.xx.xx.4x:5000/testpush/jdk8:1.0
注意, 4x.xx.xx.4x:5000为私有仓库的地址,testpush是之前建好的项目(名字一定要对),最后的jdk8为自己命名的镜像名,1.0为版本号。
5.docker images可以看到
6.登录到私有镜像:docker login 4x.xx.xx.4x:5000 回车输入注册的用户名和密码(http://4x.xx.xx.4x:5000中注册用户)
碰到到下面问题:Error response from daemon: Get https://4x.xx.xx.4x:5000/v2/: http: server gave HTTP response to HTTPS client
解决:
a. cd /etc/docker/
b. vi daemon.json
修改为:
{
"registry-mirrors": ["https://v5e3e45v.mirror.aliyuncs.com"],
"insecure-registries": ["4x.xx.xx.4x:5000"]
}
~
c. systemctl restart docker
7.把第六步碰到的问题解决后,再次执行第6步登录。
出现问题:
Error response from daemon: Get http://4x.xx.xx.4x:5000/v2/: dial tcp 4x.xx.xx.4x:5000: connect: connection refused
解决:这是因为改了ip之后,私有仓库要重新加载重起。
a.docker-compose down -v 停止私有仓库
b.docker-compose up -d 启动私有仓库
那个警告先不用管啦,意思是说你的密码没有加密保存,不安全而已。但可以看到登录成功了。
8.将我们做好的新的镜像push到私有仓库
docker push 4x.xx.xx.4x:5000/testpush/jdk8:1.0
OK,现在PUSH成功了,我们再次打开网站看下。
如果不建项目前就进行push会出现下面的问题:
denied: requested access to the resource is denied
也有可能是因为用户名和密码,需要重新登录一下。