blank
blank
发布于 2019-08-07 / 969 阅读 / 0 评论 / 0 点赞

Docker 运行 Docker 私服 Harbor

安装 harbor

harbor 依赖 docker docker-compose 详细请参见 centos7 yum 安装 docker-ce & docker-compose

安装 docker && docker-compose

# 安装 docker 安装依赖
yum install -y yum-utils  device-mapper-persistent-data lvm2  
# 添加 docker 阿里云 repo 源
yum-config-manager --add-repohttp://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装 docker
yum install docker-ce docker-ce-cli containerd.io
docker -v
# 配置 docker 163 国内加速镜像
cat > /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": ["http://hub-mirror.c.163.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ]
}
EOF
# 启动 docker && 开机自动启动
systemctl start docker && systemctl enable docker

# 安装 docker-compose
curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
# 其中 docker-compose 需要用到 epel 源 我们使用阿里的 epel 源
wget -O /etc/yum.repos.d/epel-aliyun.repo https://mirrors.aliyun.com/repo/epel-7.repo
yum clean all && yum makecache
yum install -y docker-compose

获取官方离线安装包 并解包到 /docker/harbor (国内网络需要自行解决访问问题)

wget -O /docker/harbor-offline-installer-v1.9.1.tgz https://storage.googleapis.com/harbor-releases/release-1.9.0/harbor-offline-installer-v1.9.1.tgz && \
cd /docker && tar xvf harbor-offline-installer-v1.9.1.tgz
harbor/harbor.v1.9.1.tar.gz
harbor/prepare
harbor/LICENSE
harbor/install.sh
harbor/harbor.yml

修改 harbor/harbor.yml 文件

harbor-yml-edit

执行安装脚本

sudo install.sh

harbor-install-sh-step-1 harbor-install-sh-step-2

安装完成会自动启动

因为 Harbor 是基于 docker-compose 运行的 我们可以通过 docker-compose 来管理 Harbor 服务 harbor-docker-compose-ps

启动完成 访问 服务器域名/ip 端口

前面 harbor.yml 配置文件中配置的
输入 admin 密码 点击登陆 harbor-login

登陆后 harbor 系统主界面

harbor-home

测试 docker 私服

我们点击新建项目

输入项目名称 harbor-create-new-project

新建项目成功

harbor-create-new-project-success

点击刚刚新建的项目名称 进入项目管理

harbor-project-push-docker-image

首先我们更换一台电脑 登陆 harbor

如果登陆连接被拒绝如图 这是因为 docker 默认强制使用 443 端口来建立加密连接 而我们只配置了 http 80 代理 没有配置 443 及证书 也没有 配置外部的 nginx 443 代理 harbor-docker-login-fail-during-non-https

我们可以将 harbor ip 添加到 /etc/docker/daemon.json 的 insecure-registries 中 来解决

harbor-docker-daemon-json-edit-add-insecure-registries

修改完成重启 docker

harbor-docker-restart

重新登陆 harbor

harbor-docker-login-success

登陆成功后 以后再次登陆都不会再要求输入账号密码了

harbor-docker-login-success-without-psw

push 测试

harbor-docker-push-test 我们可以看到已经 push 成功
并且 harbor 管理页面对应的项目里面也有我们刚刚推送的镜像 harbor-docker-push-success

pull 测试

我们先删除本地镜像
然后从harbor 重新 pull 下来 harbor-docker-pull-test

DONE

停止 harbor 服务

# 进入到 harbor 安装目录有 docker-compose.yml 文件的目录中执行
docker-compose down

启动 harbor 服务

# 如果有修改配置文件 
先停止服务后 再在 harbor 安装目录(/docker/harbor)执行 否则修改配置不生效 
sudo install.sh
# 如果没有修改配置文件 
# 在 harbor 安装目录(/docker/harbor)执行即可启动 harbor 服务
docker-compose up -d

评论