Harbor的镜像上传和拉取
1. 创建项目
Harbor
的项目分为公开和私有的:
公开项目:所有用户都可以访问,通常存放公共的镜像,默认有一个library
公开项目。
私有项目:只有授权用户才可以访问,通常存放项目本身的镜像。
我们可以为微服务项目创建一个新的项目:
2. 创建用户
3. 给私有项目分配用户
进入刚创建的项目->成员
角色 | 权限说明 |
---|---|
访客 | 对于指定项目拥有只读权限 |
开发人员 | 对于指定项目拥有读写权限 |
维护人员 | 对于指定项目拥有读写权限,创建 Webhooks |
项目管理员 | 除了读写权限,同时拥有用户管理/镜像扫描等管理权限 |
4. 以新用户登录Harbor
5. 制作并把镜像上传到Harbor
这里以一个
Eureka
服务为例
1. 上传Eureka
的微服务jar
包到linux
2. 编写Dockerfile
#FROM java:11
FROM openjdk:11-jdk
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
EXPOSE 10086
ENTRYPOINT ["java","-jar","/app.jar"]
3. 构建镜像
docker build --build-arg JAR_FILE=tensquare_eureka_server-1.0-SNAPSHOT.jar -t eureka:v1 .
4. 查看镜像是否创建成功
docker images
5. 给镜像打上标签
docker tag eureka:v1 192.168.2.6:85/tensquare/eureka:v1
这里
harbor
服务器地址是192.168.2.6
和端口改为85
6. 把Harbor
地址加入到Docker
信任列表
vi /etc/docker/daemon.json
将Harbor
地址加入到Docker
信任列表
{
"registry-mirrors": ["https://zydiol88.mirror.aliyuncs.com"],
"insecure-registries": ["192.168.2.6:85"]
}
重启Docker
systemctl restart docker
7. 登录 Harbor
docker login -u 用户名 -p 密码 192.168.2.6:85
8. 执行推送命令
docker push 192.168.2.6:85/tensquare/eureka:v1
6. 从Harbor
下载镜像
1. 安装Docker
,并启动
systemctl status docker
2. 把Harbor
地址加入到Docker
信任列表
vi /etc/docker/daemon.json
写入如下配置
{
"registry-mirrors": ["https://zydiol88.mirror.aliyuncs.com"],
"insecure-registries": ["192.168.2.6:85"]
}
重启docker
systemctl restart docker
3. 先登录,再从Harbor
下载镜像
docker login -u 用户名 -p 密码 192.168.2.6:85
docker pull 192.168.2.6:85/tensquare/eureka:v1