本文章将介绍如何在 Docker 中部署 Harbor 私有镜像仓库。
首先,请确保已安装 Docker。您可以通过输入docker --version命令检查 Docker 是否已安装。
环境:在CentOS 7部署的Docker中进行的。
如果没有安装Docker,请参考下面相关文章。
相关文章:
手把手教你搭建 Harbor 私有镜像仓库
一、配置镜像加速地址
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.xuanyuan.me",
"https://docker.1ms.run",
"https://docker.udayun.com",
"https://docker.m.daocloud.io",
"https://atomhub.openatom.cn"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
二、安装 Docker-Compose
-
下载 Docker-Compose:
curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose -
赋予执行权限:
chmod +x /usr/local/bin/docker-compose -
验证安装:
docker-compose -v
三、安装 Harbor
-
下载 Harbor 安装包(有500Mb左右,建议使用 xftp 本地上传):
wget https://github.com/goharbor/harbor/releases/download/v2.11.1/harbor-offline-installer-v2.11.1.tgz -
解压并移动 Harbor 目录:
tar -xf harbor-offline-installer-v2.11.1.tgz mv harbor /usr/local/ cd /usr/local/harbor/ -
重命名配置文件模板:
ls mv harbor.yml.tmpl harbor.yml -
编辑
harbor.yml文件,配置 Harbor 的相关参数。vim harbor.yml: -
配置 Docker 信任 Harbor 仓库:
vim /etc/docker/daemon.json在结尾如下图添加内容:
"insecure-registries": ["192.168.196.46"]
注意格式不要错误 -
重启 Docker 服务:
systemctl restart docker -
安装 Harbor:
请在/usr/local/harbor/目录下运行./install.sh -
验证 Harbor 容器是否启动:
docker ps -
如果没有自动启动,可以手动输入
docker-compose up -d启动:docker-compose ps #查看
docker-compose up -d #启动
docker-compose stop #停止
docker-compose restart #重新启动 -
访问 Harbor:
打开浏览器,输入
http://192.168.196.46,使用默认用户admin和您设置的密码登录。
四、使用 Harbor 管理镜像
-
为镜像打标签
docker tag nginx:1.27.0 192.168.196.46/nginx/nginx:1.27.0没有nginx镜像的要先拉取nginx,输入命令
docker pull nginx:1.27.0拉取 -
登录 Harbor:
docker login 192.168.196.46 -
推送镜像到 Harbor:
docker push 192.168.196.46/nginx/nginx:1.27.0需要先在浏览器打开harbor主页面,创建相关项目
-
从 Harbor 拉取镜像:
docker pull 192.168.196.46/nginx/nginx:1.27.0
五、运行容器示例
-
运行 Nginx 容器:
docker run -id --name=nginx-test -p 10086:80 192.168.196.46/nginx/nginx:1.27.0 -
进入容器并修改默认页面:
docker exec -it nginx-test /bin/bash cd /usr/share/nginx/html ls echo "<marquee><font color=blue><h1>hello docker...</h1></font></marquee>" > index.html