harbor部署+docker-compose

harbor部署

harbor介绍

Harbor 是一个开源的企业级容器镜像仓库,用于存储和分发 Docker 镜像及其他容器格式的镜像。

  • Harbor 提供了一个集中化的存储库,方便团队成员共享和管理容器镜像。你可以将构建好的镜像推送到 Harbor 仓库中,其他成员可以从仓库中拉取镜像进行部署。
  • Harbor 提供了一个直观的 Web 界面,方便用户管理镜像仓库、用户和权限等。你可以通过 Web 界面进行镜像的上传、下载、搜索和管理操作。
  • Web 界面还提供了丰富的统计信息和日志记录,方便用户监控和审计镜像仓库的使用情况。

由于要使用python环境运行docker-compose,所有要验证python :python --version

pip是python的包管理工具,和yum对redhat的关系是一致的

查看安装python的第三方版本号 pip list

使用harbor仓库的步骤

1.安装pip 

yum -y install python2-pip

2.升级版本,没有指定源无法升级

pip install  --upgrade pip

3.临时使用,指定版本号,升级pip

pip install --upgrade pip==20.3  -i https://mirrors.aliyun.com/pypi/simple

4.查看pip版本号,升级到20.3

pip list

5.安装docker-compose,忽略requests

[root@docker2 ~]# pip install docker-compose --ignore-installed requests  -i https://mirrors.aliyun.com/pypi/simple

6.上传harbor文件,解压harbor

[root@docker2 ~]# ls
anaconda-ks.cfg  docker.sh  harbor-offline-installer-v2.11.1.tgz
[root@docker2 ~]# tar -zxvf harbor-offline-installer-v2.11.1.tgz 
[root@docker2 ~]# ls
anaconda-ks.cfg  harbor
docker.sh        harbor-offline-installer-v2.11.1.tgz

7.harbor的配置文件是 harbor.yml但是解压后的目录中只有harbor.yml.tmpl(模板),复制它,改名

[root@docker2 ~]# cd harbor
[root@docker2 harbor]# ls
common.sh              harbor.yml.tmpl  LICENSE
harbor.v2.11.1.tar.gz  install.sh       prepare
[root@docker2 harbor]# cp harbor.yml.tmpl harbor.yml
[root@docker2 harbor]# ls
common.sh              harbor.yml       install.sh  prepare
harbor.v2.11.1.tar.gz  harbor.yml.tmpl  LICENSE

8.修改配置文件

[root@docker2 harbor]# vim harbor.yml

修改主机地址(hostname),注释掉https安全网站的配置,查看用户(admin)和密码(Harbor12345)

9.执行初始化操作

[root@docker2 harbor]# ./prepare 
prepare base dir is set to /root/harbor
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
See 'docker run --help'.     //没有安装,配置docker

10.安装docker,配置docker的相关配置

{
    "registry-mirrors": [
        "https://do.nark.eu.org",
        "https://dc.j8.work",
        "https://docker.m.daocloud.io",
        "https://dockerproxy.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://docker.nju.edu.cn"
    ],
    "hosts": [
	"tcp://0.0.0.0:2375",
	"unix:///var/run/docker.sock"

   ],
    "insecure-registries":[
	"http://192.168.118.57"   //本机的IP地址

   ]
}

11. 执行./prepare检查环境,下载镜像

[root@docker2 harbor]# ./prepare 

12.执行./install.sh

13.docker ps --all

14.在远程主机上访问80,登录,查看项目

15.上传:先登录,在上传

     登录

          docker login http://192.168.118.57

          用户:admin

          密码:Harbor12345

     打标签

           docker tag centos:latest 192.168.118.57/library/wjcentos:v0

     上传
           docker push 192.168.118.57/library/wjcentos:v0

16.在浏览器上查看上传的镜像

17.测试:

新建一台机器,在该机器上拉取刚刚上传的镜像(192.168.118.57/library/wjcentos:v0)

在新机器上编辑docker配置文件(/etc/docker/daemon.json),添加安装harbor主机的IP地址

    "insecure-registries":[
	"http://192.168.118.55:5000",
	"http://192.168.118.57"     

   ]

[root@docker1 ~]# docker pull 192.168.118.57/library/wjcentos:v0
v0: Pulling from library/wjcentos
Digest: sha256:a1801b843b1bfaf77c501e7a6d3f709401a1e0c83863037fa3aab063a7fdb9dc
Status: Downloaded newer image for 192.168.118.57/library/wjcentos:v0
192.168.118.57/library/wjcentos:v0
[root@docker1 ~]# docker images
REPOSITORY                        TAG       IMAGE ID       CREATED        SIZE
192.168.118.55:5000/centos        yum       11c7f617cd4a   47 hours ago   272MB
192.168.118.57/library/wjcentos   v0        5d0da3dc9764   2 years ago    231MB
centos                            latest    5d0da3dc9764   2 years ago    231MB

 

docker-compose的编排

学习kubernetes的基础

通过运行一个yum管理docker容器

注意事项:

要在 docker-compose.yml ⽂件所在的⽬录下才能通过 docker compose 命令启动容器。

执行docker-compose命令时必须要在harbor目录下,因为docker-compose依赖harbor

[root@docker2 harbor]# ls
common     docker-compose.yml     harbor.yml       install.sh  prepare
common.sh  harbor.v2.11.1.tar.gz  harbor.yml.tmpl  LICENSE

[root@docker2 harbor]# docker  compose start|stop|down

docker-compose定义

1. docker compose 是 docker 官⽅的开源项⽬,负责实现对docker 容器集群的快速编排(容器,依赖,⽹络,挂载)
2. compose 是 docker 公司推出的⼀个⼯具软件,可以管理多个docker 容器组成的应⽤
3. 需要定义⼀个 YAML 格式的配置⽂件 docker-compose.yml,写好多个容器之间的调⽤关系
4. 使⽤ compose 的步骤
      1. 使⽤ Dockerfile 定义各个微服务应⽤并构建出对应的镜像⽂件Dockerfile 的使⽤,以便可以             在任何地⽅复制。
      2. 使⽤ docker-compose.yml 定义⼀个完整的业务单元,安排好整体应⽤中的各个容器服务。
      3. 最后,执⾏ docker-compose up 命令来启动并运⾏整个应⽤程序,完成⼀键部署。

Docker-compose 将管理的容器分为三层:⼯程(project)、服务(service)、容器(container)
1. ⼯程:运⾏ compose 的⽬录下所有的⽂件,包括 docker-compose.yml、extends ⽂件、环境变量⽂件等组成⼀个⼯程, 若⽆特殊指定⼯程,⼯程名即为当前⽬录名。⼯程的默认配置⽂件为 docker-compose.yml,可通过环境变量 COMPOSE_FILE或 -f 参数⾃定义配置⽂件,其定义了多个有依赖关系的服务及每个服务运⾏的容器。
2. 服务:⼀个⼯程中包含多个服务,每个服务中定义了容器运⾏的 镜像、参数、依赖等。⼀个服务中可包括多个容器实例。
3. 容器:被 docker-compose 管理或部署的容器集群,调⽤docker 服务提供的 API 来对容器进⾏管理,只要操作的平台⽀持 docker API,即可在其上进⾏ compose 的容器编排。

yaml注意事项

1. 不⽀持制表符 tab 键缩进,需要使⽤空格缩进。(但在实际操作中可以使用tab)
2. 通常开头缩进 2 个空格。
3. 字符后缩进 1 个空格,如:冒号,逗号,横杠。
4. ⽤ # 表示注释。
5. 如果包含特殊字符⽤单引号引起来。
6. 布尔值(true、false、yes、no、on、off)必须使⽤“”引号括起来,这样分析器会将它们解释为字符串。

docker compose命令选项

1. build:重新构建服务
2. ps:列出容器
3. up:启动所有docker-compose服务
4. up -d:启动所有docker-compose服务启动并后台运⾏
5. exec:进⼊容器实例内部
6. scale:指定⼀个服务器启动数量
7. top:显示容器进程
8. logs:查看容器输出⽇志
9. down:停⽌并删除容器、⽹络、卷、镜像
10. stop:停⽌服务
11. start:启动服务
12. restart:重启服务
13. config:检查配置
14. config -q:检查配置,有问题才有输出
15. --version:查看版本

docker-compose实例

新建一台机器(192.168.118.58)

1.安装pip,docker-compose

   12  yum -y install python2-pip
   17  pip install --upgrade pip==20.3  -i https://mirrors.aliyun.com/pypi/simple
   18  pip install docker-compose  -i https://mirrors.aliyun.com/pypi/simple
   19  pip list

2.安装docker,配置docker的相关内容
[root@docker3 test]# vi /usr/lib/systemd/system/docker.service 
[root@docker3 test]# systemctl daemon-reload
[root@docker3 test]# systemctl restart docker

3.创建yml文件,创建数据卷目录,启动compose集群

[root@docker3 ~]# mkdir test  # 创建⼀个⽬录,该⽬录是⼀个:(project)⼯程
[root@docker3 ~]# cd test
[root@docker3 test]# mkdir html  #创建数据卷目录
[root@docker3 test]# echo "我是被编排的nginx" > ./html/index.html  #创建索引文件
[root@docker3 test]# vi docker-compose.yml   #这⾥⽂件名称是固定不变的

version: "3"
services:
  nginx:
    container_name: c1
    image: "nginx:latest"
    ports:
    - "80:80"
    volumes:
    - /root/test/html/:/usr/share/nginx/html/   #挂载


[root@docker3 test]# ls
docker-compose.yml  html

# 启动⼯程后会根据指定的容器名称,⽣成对应的容器

[root@docker3 test]# docker compose up -d
WARN[0000] /root/test/docker-compose.yml: `version` is obsolete 
[+] Running 8/8
 ✔ nginx Pulled                                                 99.5s 
   ✔ e4fff0779e6d Pull complete                                 22.0s 
   ✔ 2a0cb278fd9f Pull complete                                 23.5s 
   ✔ 7045d6c32ae2 Pull complete                                 23.5s 
   ✔ 03de31afb035 Pull complete                                 23.5s 
   ✔ 0f17be8dcff2 Pull complete                                 23.5s 
   ✔ 14b7e5e8f394 Pull complete                                 23.5s 
   ✔ 23fa5a7b99a6 Pull complete                                 24.1s 
[+] Running 2/2
 ✔ Network test_default  Created                                 0.2s 
 ✔ Container c1          Started                                 0.4s 
[root@docker3 test]# systemctl stop firewalld
[root@docker3 test]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
nginx        latest    5ef79149e0ec   2 weeks ago   188MB
[root@docker3 test]# docker ps --all
CONTAINER ID   IMAGE          COMMAND                   CREATED          STATUS          PORTS                               NAMES
189bcd639c76   nginx:latest   "/docker-entrypoint.…"   16 minutes ago   Up 16 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp   c1

4.在浏览器上访问:

  • 26
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值