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
相关推荐
tianyuanwo13 分钟前
Ansible自动化运维全解析:从设计哲学到实战演进
运维·自动化·ansible
LucienShui27 分钟前
Webhook 配置备忘
linux·运维·webhook
LanLance30 分钟前
ES101系列09 | 运维、监控与性能优化
java·运维·后端·elasticsearch·云原生·性能优化·golang
Clownseven43 分钟前
“轻量应用服务器” vs. “云服务器CVM”:小白入门腾讯云,哪款“云机”更适合你?(场景、配置、价格对比解析)
运维·服务器·腾讯云
Leo.yuan1 小时前
API是什么意思?如何实现开放API?
大数据·运维·数据仓库·人工智能·信息可视化
PH_modest1 小时前
【Linux跬步积累】—— 网络编程套接字(二)
linux·运维·网络
Huathy-雨落江南,浮生若梦1 小时前
k8s入门教程(集群部署、使用,镜像拉取失败网络问题排查)
网络·容器·kubernetes
itachi-uchiha2 小时前
使用vsftpd搭建FTP服务器(TLS/SSL显式加密)
运维·服务器·ssl
罗技1232 小时前
我用Amazon Q写了一个Docker客户端,并上架了懒猫微服商店
运维·docker·容器
成工小白2 小时前
【Linux】文件操作
linux·运维·服务器