Docker Compose与私有仓库

Docker Compose工具

Docker Compose概述
  • Docker Compose的前身是Fig,它是一个定义及运行多个Docker容器的工具。使用Docker Compose时,只需要在一个配置文件中定义多个Docker容器,然后使用一条命令启动这些容器。Docker Compse会通过解析容器间的依赖关系按先后顺序启动所定义的容器

  • Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。通过一个 YAML 文件来配置服务、网络和卷,用户可以一次性启动或停止整个应用的所有服务,简化了开发和部署流程

  • Docker Compose是一个容器编排工具,Docker容器编排是一种管理多个容器及其复杂部署、网络配置、存储卷以及服务发现的自动化技术。它确保容器能够在集群环境中高效、可靠地运行。其他编排技术还有:kubernetes与Swarm

Docker Compose的使用方式
  • 编写测试yaml
shell 复制代码
#编写文件 该文件创建一个以httpd为服务的容器
[root@localhost ~]# vim docker-compose.yaml
services:
  webapp:
    image: 'httpd:latest'
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - "/var/www/html:/usr/local/apache2/htdocs:rw"
  • Docker Compose常用命令
shell 复制代码
#前台运行
[root@localhost ~]# docker-compose up 
#后台运行
[root@localhost ~]# docker-compose up -d 
#列出运行容器
[root@localhost ~]# docker-compose ps 
#查看服务日志输出
[root@localhost ~]# docker-compose logs webapp
#打印绑定的公共端口
[root@localhost ~]# docker-compose port webapp 80
#停止已运行的服务的容器
[root@localhost ~]# docker-compose stop webapp
#启动指定服务已存在的容器
[root@localhost ~]# docker-compose start webapp
#删除指定服务的容器 需先关闭
[root@localhost ~]# docker-compose stop webapp
[root@localhost ~]# docker-compose rm webapp
#删除指定服务的容器 无需关闭
[root@localhost ~]# docker-compose kill webapp
#重新构建服务并启动
[root@localhost ~]# docker-compose up -d
[root@localhost ~]# docker-compose port webapp 80
#同时运行多个容器
[root@localhost ~]# docker-compose up --scale webapp=3 -d
#注:端口不可冲突,需将文件中的端口注释掉 
Docker Compose yml配置文件及常用指令简介
  • 不支持制表符tab键2缩减,需要使用空格缩进
  • 通常开头所缩进两个空格
  • 字符后缩进一个空格,如冒号、逗号、横杠
  • 用#号注释
  • 如果包含特殊字符,要使用单引号(")引起来
  • 布尔值(true、false、yes、no、off)必须使用引号括起来,这样分析器会将它们解释为字符串

Harbor私有仓库

Harbor概述
  • Harbor是VMware公司开源的企业级Docker Registry项目

  • Harbor的优势

    • 基于角色控制
    • 基于镜像的复制策略
    • 支持LDAP/AP
    • 图形删除和垃圾收集
    • 图形UI
    • 审计
    • RESTful API
  • 常用组件

    • Proxy

      • 通过一个前置的反向代理统一接收浏览器、Docker客户端的请求,并将请求转发给后端不同的服务
    • Registry

      • 负责存储Docker镜像,并处理docker push/pull命令
    • Core services

      • Harbor的核心功能,包括UI、webhook、token服务
    • Database

      • 为core services提供数据库服务
    • Log collector

      • 负责收集其他组件的log,供日后进行分析
部署Harbor私有仓库
shell 复制代码
#解压tar包
[root@localhost ~]# tar zxvf harbor-offline-installer-v2.4.3.tgz
#配置harbor
[root@localhost ~]# cd harbor
[root@localhost ~]# cp harbor.yml.tmpl harbor.yml
[root@localhost ~]# vim harbor.yml
hostname: 192.168.10.106 #修改为当前节点ip
#将https相关配置注释掉
#运行安装脚本
[root@localhost ~]# ./install.sh
#使用浏览器访问Harbor
相关推荐
小阳睡不醒29 分钟前
小白成长之路-部署Zabbix7(二)
android·运维
杰克逊的日记33 分钟前
GPU运维常见问题处理
linux·运维·gpu
caolib1 小时前
无需云服务器的内网穿透方案 -- cloudflare tunnel
运维·服务器·内网穿透·tunnel·cloudflared
奇舞精选1 小时前
k8s基本概念初探
运维
誰能久伴不乏2 小时前
Linux系统调用概述与实现:深入浅出的解析
linux·运维·服务器
程序员学习随笔2 小时前
Linux进程深度解析(2):fork/exec写时拷贝性能优化与exit资源回收机制(进程创建和销毁)
linux·运维·服务器
-SGlow-2 小时前
MySQL相关概念和易错知识点(2)(表结构的操作、数据类型、约束)
linux·运维·服务器·数据库·mysql
代码改变世界ctw3 小时前
Linux内核设计与实现 - 第14章 块I/O层
linux·运维·服务器
Dreams_l3 小时前
网络编程2(应用层协议,传输层协议)
运维·服务器·网络
勇哥的编程江湖3 小时前
starrocks官网docker部署mysql无法连接
运维·docker·容器