docker私有仓库管理系统harbor的部署使用
安装准备
1 安装docker
官方文档:https://docs.docker.com/engine/installation/linux/docker-ce/centos/
#1.配置仓库
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#2.可以选择是否开启edge和test仓库
sudo yum-config-manager --enable docker-ce-edge
sudo yum-config-manager --enable docker-ce-test
sudo yum-config-manager --disable docker-ce-edge
sudo yum-config-manager --disable docker-ce-test
#3.安装docker-ce
sudo yum install docker-ce #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.09
#4.可以查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64 17.09.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.09.0.ce-1.el7.centos @docker-ce-stable
docker-ce.x86_64 17.06.2.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.06.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.06.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.03.2.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable
sudo yum install <FQPN> 例如:sudo yum install docker-ce-17.09.0.ce
#5.启动并加入开机启动
sudo systemctl start docker
sudo systemctl enable docker
#6.关闭docker-daemon
sudo systemctl stop docker
sudo systemctl disable docker
2 安装docker-compose
Compose和Docker兼容性
compose文件格式版本 | docker版本 |
---|---|
3.6 | 18.02.0+ |
2.4 | 17.12.0+ |
2.3, 3.3, 3.4, 3.5 | 17.06.0+ |
2.2, 3.0, 3.1, 3.2 | 1.13.0+ |
从github上下载docker-compose二进制文件安装
#下载最新版的docker-compose文件
$ sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
#添加可执行权限
$ sudo chmod +x /usr/local/bin/docker-compose
pip安装
$ sudo pip install docker-compose
harbor部署
开源项目地址:https://github.com/vmware/harbor
1 下载文件
进入到GitHub下载官方harbor文件,下载链接地址为:http://harbor.orientsoft.cn/harbor-v1.4.0/harbor-offline-installer-v1.4.0.tgz
tar -zxvf harbor-offline-installer-v1.4.0.tgz
2 修改配置文件
解压缩下载好的harbor文件,cd harbor,修改docker-compose.yml和harbor.cfg两个文件,其中
docker-compose.yml主要修改registry容器参数,在network下增加如下的内容:
# 按照惯例,开放5000端口给registry使用,则修改docker-compose.yml文件,为registry节点添加ports属性
……
networks:
- harbor
ports:
- 5000:5000
……
Harbor的Nginx端口映射到宿主机的80端口上了,一般情况下我们不希望80端口被占用,所以需要修改docker-compose.yml文件:
proxy:
image: nginx:1.9
container_name: nginx
restart: always
volumes:
-./common/config/nginx:/etc/nginx
ports:
- 9999:80
- 443:443
depends_on:
- mysql
- registry
- ui
- log
然后再修改common/templates/registry/config.yml文件:
auth:
token:
issuer:registry-token-issuer
realm: $ui_url:9999/service/token
rootcertbundle:/etc/registry/root.crt
service: token-service
修改harbor.cfg文件
#db认证模式
hostname = 192.168.2.150
db_password = 123456
clair_db_password = 123456
harbor_admin_password = 123456
auth_mode = db_auth
#secretkey_path = /dcos/harbor/adminserver/data
secretkey_path必须和docker-compose.yml中设置的相关,不然启动adminserver的时候会报错:“harbor failed to initialize the system: read /etc/adminserver/key: is a directory”
3 启动harbor
修改完成之后,使用官方自带脚本更新参数,在harbor目录中执行./prepare,
./prepare或./prepare --with-clair(开启镜像扫描功能)
接着在harbor目录下执行./install.sh命令即可,会自动导入镜像并启动对应的容器,待脚本跑完之后使用docke-compose ps即可查看,常用命令包含以下几个:
./install.sh或./install.sh --with-clair(开启镜像扫描功能)
docker-compose up -d ###后台启动,如果容器不存在根据镜像自动创建
docker-compose down -v ###停止容器并删除容器
docker-compose start ###启动容器,容器不存在就无法启动,不会自动创建镜像
docker-compose stop ###停止容器
使用私有仓库pull镜像
docker默认是从官方拉取镜像的,并且从1.12版本之后,默认私有仓库是使用https来进行连接,所以我们这里需要进行一些相应的修改:
修改docker启动文件 /usr/lib/systemd/system/docker.service ,在启动命令后加入参数:–insecure-registry 192.168.2.150:5000
然后使用systemctl daemon-reload一下,重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker
现在可以pull镜像了
使用私有仓库push镜像
注册
$ sudo docker login -u admin -p 123456 192.168.2.150:500
现在可以pull镜像了
最后使用链接 http://192.168.2.150:9999 (这是我自己的地址,你需要换成你自己的),输入用户名密码即可登录系统了。