一、准备
服务 | 版本 |
---|---|
linux | centos7 |
docker | 18.06.1-ce |
docker-compose | 1.27.4 |
harbor | v1.10.1-f3e11715 |
二、安装
1.docker安装
// 1.安装Docker源
yum install -y wget && wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
// 2.安装Docker
yum -y install docker-ce-18.06.1.ce-3.el7
// 3.开启自启和启动
systemctl enable docker && systemctl start docker
// 4.查看版本
docker --version
2.docker-compose安装
#从官网下载太慢,使用国内地址下载
sudo curl -L "https://get.daocloud.io/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#赋予执行权限
sudo chmod +x /usr/local/bin/docker-compose
#创建软连接,有时会出现不能全局使用的情况
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
#查看版本
docker-compose --version
3.harbor安装
# 1.安装到/opt目录
cd /opt
# 2.下载离线包:
wget https://storage.googleapis.com/harbor-releases/release-1.10.0/harbor-offline-installer-v1.10.1-rc1.tgz
# 3.解压
tar zxf harbor-offline-installer-v1.10.1-rc1.tgz
# 4.修改配置
vim harbor.yml
# 调整以下参数:
hostname: 192.168.100.4 #这里配置的监听地址,也可以是域名
port: 80 #这里配置监听端口
harbor_admin_password: Harbor12345 # 配置admin用户的密码
data_volume: /data/harbor #配置数据仓库
# 注释https
# 5.执行安装脚本,会启动harbor
./install.sh
# 6.设置harbor开机自启动(推荐)
cat >> /usr/lib/systemd/system/harbor.service <<EOF
[Unit]
Description=Harbor
After=docker.service systemd-networkd.service systemd-resolved.service
Requires=docker.service
Documentation=http://github.com/vmware/harbor
[Service]
Type=simple
Restart=on-failure
RestartSec=5
ExecStart=/usr/local/bin/docker-compose -f /opt/harbor/docker-compose.yml up
ExecStop=/usr/local/bin/docker-compose -f /opt/harbor/docker-compose.yml down
[Install]
WantedBy=multi-user.target
EOF
systemctl enable harbor && systemctl restart harbor
注:/opt/harbor路径要对应
注:第一次start会失败:WARNING: no logs are available with the 'syslog' log driver,
解决方法就是再执行systemctl restart harbor
# 7.harbor单独启动(不用执行,参考下。不推荐)
harbor 通过docker-compose.yml配置文件的形式管理
停止:
docker-compose stop
启动:
docker-compose up -d
三、访问Harbor,创建仓库和开发用户
1.访问Harbor
http://192.168.100.4
admin/Harbor12345
2.创建仓库和用户
根据界面信息,比如我创建了一个demo-library的项目和datangxiangma的用户,在仓库中添加用户,设置角色为开发
切换这个新用户登录harbor, 因为admin无法上传镜像
四、docker上传镜像到Harbor仓库
1.docker中配置仓库
# k8s每个docker节点都配置下
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],
"insecure-registries": ["http://192.168.100.4","http://192.168.100.4:80"]
}
注:如果harbor是80端口,上边需要把80的两种地址都配上。不解释
# 配置后重新加载配置和重启docker
systemctl daemon-reload && systemctl restart docker
2.doker登录到Harbor仓库
不登录是不能上传的,因为harbor不能确认身份
docker login docker login 192.168.100.4:80
注:这个端口格式要和提交的保持一致
用户名和密码就是Harbor新建用户的。
3.docker标记和上传镜像到harbor
打开对应的harbor仓库,找到对应命令格式:
格式
在项目中标记镜像:
docker tag SOURCE_IMAGE[:TAG] 192.168.100.4/demo-library/IMAGE[:TAG]
推送镜像到当前项目:
docker push 192.168.100.4/demo-library/IMAGE[:TAG]
1.在项目中标记镜像
docker tag demo-docker-java 192.168.100.4/demo-library/demo-docker-java
因为我的tag是latest,所以我不输入tag号
2.推送镜像到当前项目
docker push 192.168.100.4/demo-library/demo-docker-java
五、其他节点docker配置harbor
每个节点都要新增下daemon.json配置
vim /etc/docker/daemon.json
新增一下内容,注意json文件格式要写对
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],
"insecure-registries": ["http://192.168.100.4","http://192.168.100.4:80"]
}
加载配置并重启docker
systemctl daemon-reload && systemctl restart docker
如果这一步没配置好,docker login ip 会报这个错误的:
telnet: connect to address 192.168.100.4: Connection refused
因为他默认的是用https访问的