本次安装环境:

1、Harbor服务器:192.168.0.80/24
2、Docker服务器:192.168.0.150/24
注:安装前请确保服务器能连接互联网,使用yum需要联网下载对应程序包

一、 Harbor端安装配置

1.安装docker

安装依赖

yum install -y yum-utils

执行结果如图:

dockerfile 推送镜像 docker推送镜像到harbor_运维

添加Docker软件包源

yum-config-manager --add-repo \https://download.docker.com/linux/centos/docker-ce.repo

执行结果如图:

dockerfile 推送镜像 docker推送镜像到harbor_docker_02

安装Docker CE

yum install -y docker-ce

执行结果如下:

dockerfile 推送镜像 docker推送镜像到harbor_centos_03

启动Docker服务并设置开机启动

systemctl start docker
systemctl enable docker

执行结果如下:

dockerfile 推送镜像 docker推送镜像到harbor_容器_04

2.安装docker compose

下载连接:https://github.com/docker/compose/releases/download/v2.4.1/docker-compose-linux-x86_64(下载此包需要注册账号,如果下载失败可私信博主索取)

下载完成后上传docker compose到服务任意目录,并将docker-compose-linux-x86_64移动到系统二进制目录下

mv docker-compose-linux-x86_64  /usr/bin/docker-compose

执行结果如图:

dockerfile 推送镜像 docker推送镜像到harbor_centos_05

赋予可执行权限,并验证

chmod a+x /usr/bin/docker-compose
docker-compose --help

执行结果如图:

dockerfile 推送镜像 docker推送镜像到harbor_centos_06

3.部署Harbor HTTP

下载链接:https://github.com/goharbor/harbor/releases/download/v2.5.0/harbor-offline-installer-v2.5.0.tgz

下载完成后上传安装包至任意目录并解压

tar -zxvf harbor-offline-installer-v1.10.10.tgz

执行结果如图:

dockerfile 推送镜像 docker推送镜像到harbor_dockerfile 推送镜像_07

修改配置文件

cd harbor/
vim harbor.yml

dockerfile 推送镜像 docker推送镜像到harbor_centos_08


下图为原始配置

dockerfile 推送镜像 docker推送镜像到harbor_容器_09

> 需要修改第五行主机名为本机IP,不配置https的情况下需要将 13、15、17和18行注释掉,然后按需配置第10行http端口和27行web登录密码

修改过后如图 :

dockerfile 推送镜像 docker推送镜像到harbor_centos_10

配置log存放路径,默认不改也可以,然后保存退出

如图第87行配置log存放路径

dockerfile 推送镜像 docker推送镜像到harbor_dockerfile 推送镜像_11

加载配置并安装

./prepare
./install.sh

如图加载配置

dockerfile 推送镜像 docker推送镜像到harbor_运维_12


执行安装如图

dockerfile 推送镜像 docker推送镜像到harbor_centos_13


dockerfile 推送镜像 docker推送镜像到harbor_容器_14

验证

docker-compose

验证如图:

dockerfile 推送镜像 docker推送镜像到harbor_运维_15

4.访问页面并登录验证

打开浏览器输入http://本机IP

dockerfile 推送镜像 docker推送镜像到harbor_dockerfile 推送镜像_16

账号:admin

密码默认为:Harbor12345或自己设置的密码

如图登录成功

dockerfile 推送镜像 docker推送镜像到harbor_dockerfile 推送镜像_17

新建名为test项目,为后续测试上传镜像准备

点击“新建项目”

dockerfile 推送镜像 docker推送镜像到harbor_容器_18

输入项目信息

dockerfile 推送镜像 docker推送镜像到harbor_centos_19

如图创建成功

dockerfile 推送镜像 docker推送镜像到harbor_容器_20

二、Docker安装

1.环境配置

查看内核版本,Docker要求CentOS系统的内核版本高于3.10

Uname -r

dockerfile 推送镜像 docker推送镜像到harbor_容器_21

检查之前是否安装旧版本或依赖,有则删除

sudo yum remove docker  docker-common docker-selinux docker-engine

dockerfile 推送镜像 docker推送镜像到harbor_运维_22

联网情况下安装需要的软件包,yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

执行结果如下图:

dockerfile 推送镜像 docker推送镜像到harbor_dockerfile 推送镜像_23


dockerfile 推送镜像 docker推送镜像到harbor_运维_24

配置yum源

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

执行结果如图

dockerfile 推送镜像 docker推送镜像到harbor_dockerfile 推送镜像_25

可以查看所有仓库中所有docker版本,并选择特定版本安装

yum list docker-ce --showduplicates | sort -r

dockerfile 推送镜像 docker推送镜像到harbor_容器_26


dockerfile 推送镜像 docker推送镜像到harbor_运维_27

2.安装docker

由于repo中默认只开启stable仓库,这里选择安装的是稳定版17.12.0

sudo yum install <FQPN>  # 例如:sudo yum install docker-ce-17.12.0.ce

执行结果如图

dockerfile 推送镜像 docker推送镜像到harbor_docker_28


根据提示输入y继续安装

dockerfile 推送镜像 docker推送镜像到harbor_dockerfile 推送镜像_29


dockerfile 推送镜像 docker推送镜像到harbor_运维_30

启动docker并设置开机自启

systemctl start docker
systemctl enable docker

dockerfile 推送镜像 docker推送镜像到harbor_容器_31

3.验证

标题验证安装是否成功,有client和service两部分表示docker安装启动都成功了

docker version

dockerfile 推送镜像 docker推送镜像到harbor_运维_32

查看服务状态,Active为running表示服务启动

systemctl status docker

dockerfile 推送镜像 docker推送镜像到harbor_运维_33

三、制作镜像

在docker安装的服务器上进行操作

1.下载基础镜像

查看本地镜像列表,现在为空

docker images

dockerfile 推送镜像 docker推送镜像到harbor_centos_34

下载centos基础镜像

docker pull centos

dockerfile 推送镜像 docker推送镜像到harbor_运维_35

查看是否下载成功

docker images

dockerfile 推送镜像 docker推送镜像到harbor_centos_36

2.配置镜像

进入镜像,进入后主机名会变成镜像数值

docker run -it centos

dockerfile 推送镜像 docker推送镜像到harbor_dockerfile 推送镜像_37

修改镜像,测试随便改动一点东西,这里新建一个名为test.txt的文件

touch test.txt

dockerfile 推送镜像 docker推送镜像到harbor_容器_38

退出镜像

exit

dockerfile 推送镜像 docker推送镜像到harbor_dockerfile 推送镜像_39

四、上传镜像至Harbor

在docker安装的服务器上进行操作

1.修改配置文件

修改/ect/docker/daemon.json文件,没有则创建

touch /ect/docker/daemon.json
vi  /ect/docker/daemon.json

dockerfile 推送镜像 docker推送镜像到harbor_dockerfile 推送镜像_40

增加{“insecure-registries”: [“192.168.0.80”]},“192.168.0.80:80” 为Harbor的服务器地址和端口。Harbor默认http端口为80,https为443,若更改这里则写更改过的端口

dockerfile 推送镜像 docker推送镜像到harbor_centos_41

2.重启docker

重新应用配置并重启docker

systemctl daemon-reload
systemctl restart docker

dockerfile 推送镜像 docker推送镜像到harbor_容器_42

如下图docker重启报错,则检查刚才/ect/docker/daemon.json文件内容是否有误,标点符号是否是英文等

dockerfile 推送镜像 docker推送镜像到harbor_容器_43

3.登陆Harbor

登录harbor,账号密码为harbor网页账号信息(参考1.4节),提示Succeeded则表示登录成功

docker login 192.168.0.80:80

dockerfile 推送镜像 docker推送镜像到harbor_运维_44

4.上传镜像

将本地镜像格式转为harbor格式

docker  tag  centos:latest  192.168.0.80:80/test/ceshi:v2.1.1

dockerfile 推送镜像 docker推送镜像到harbor_dockerfile 推送镜像_45

说明:centos:latest为本地镜像名称和TAG值,192.168.0.80:80/test为harbar项目的路径,ceshi:v2.1.1为上传到harbor后的命名及版本号可随意指定

示例:如本地有个镜像名为mysql,TAG值为 latest,需要将这个镜像上传到,192.168.0.100harbor服务器的mysql项目中,则配置如下:

docker  tag  mysql:latest  192.168.0.100:80/mysql/mysqltest:v3.0

dockerfile 推送镜像 docker推送镜像到harbor_docker_46


dockerfile 推送镜像 docker推送镜像到harbor_centos_47

查看转后格式后的镜像信息

docker images

dockerfile 推送镜像 docker推送镜像到harbor_centos_48

开始上传, 192.168.0.80:80/test/ceshi为转换格式后的名称,v2.1.1为TAG值

docker  push  192.168.0.80:80/test/ceshi:v2.1.1

dockerfile 推送镜像 docker推送镜像到harbor_dockerfile 推送镜像_49

5.验证

登录Harbor>进入test项目可以看到刚才上传的镜像,即表示镜像成功上传至harbor中

dockerfile 推送镜像 docker推送镜像到harbor_容器_50

总结:两台服务器,1台安装Harbor,1台安装Docker,两台服务器互通且连接互联网,Docker配置完成后制作镜像并上传至Harbor即可。