docker技术中docker-compose与harbor技术

  • docker-compose+harbor

    • docker网络概念

      • 当大规模使用docker时,容器间通信就成了一个问题。

        • docker支持的四种网络模式在run时指定

          • host模式

            • --net=host

            • 容器和宿主机共享一个网络命名空间

          • container模式

            • --net={容器id}

            • 多个容器共享一个网络

          • none模式

            • --net=none

            • 容器拥有独立的网络,但是没有进行任何配置

          • bridge模式

            • --net=bridge

            • 默认模式,通过-p 指定端口映射

        • 直接创建一个网络

          • docker network create -d 模式名称 网络名称

          • 在运行时加入该网路

            • docker run -itd --rm --name web01 --network mynet nginx

              • -rm 在容器状态为退出时自动删除该容器,不论正常退出还是错误退出。

    • docker的重启策略,在生产环境中

        • docker容器常见的退出状态码

      • 在docker-compose中指定:

        • restart:: 加策略名称

      • 在运行时指定

        • docker run -dit --restart=always nginx

    • docker-compose

      • 概念

        • 前身fig,是一个定义和运行多个容器的工具,是一个编排技术。

          • 编排

            • 批量管理

              • 批量管理:对大量容器实例的生命周期管理,支持跨平台。对一组,成套成体系的容器管理。

                • 实例

                  • 实例:程序跑在内存,程序本身以及配置文件参数,运行起来

            • 支持副本

            • 编辑,排版,然后批量管理

      • docker-compose的安装

        • curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

        • 或者将下载好离线包拷贝到/usr/local/bin并赋予执行权

        • 最后利用docker-compose -v验证安装结果

      • docker-compose的使用

        • 需要在编辑好的docker-compose.yaml文件下,docker-compose的使用依赖这个文件。

          • 因为采用yaml语言编写因此有些事项需要注意

          • docker-compose.yaml常用的字段

            • 以lnmp为例的docker-compose.yaml

              • services: mysql: hostname: mysql restart: always image: mysql container_name: mysql ports: - "3306:3306" networks: - lnmp volumes: - mysql-config:/etc/mysql - mysql-log:/var/log/mysql - mysql-data:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: 123456 MYSQL_USER: user MYSQL_PASSWORD: user123 php: hostname: php container_name: php build: context: ./php dockerfile: Dockerfile volumes: - /opt/compose_lnmp/nginx-html:/var/www/html networks: - lnmp nginx: hostname: nginx container_name: nginx build: context: ./nginx dockerfile: dockerfile ports: - "80:80" - "443:443" networks: - lnmp volumes: - /opt/compose_lnmp/nginx-config/nginx.conf:/usr/local/nginx/conf/nginx.conf #- nginx-log:/var/log/nginx - /opt/compose_lnmp/nginx-html:/var/www/html networks: lnmp: volumes: mysql-config: mysql-log: mysql-data: # nginx-html: # nginx-config: nginx-log:

                • build dockerfile context

                  • 指定dockerfile文件名构建镜像上下文路径

                • image

                  • 指定镜像

                • command

                  • 执行命令,覆盖默认的镜像命令

                • container_name

                  • 指定容器名称

                • deploy

                  • 指定部署和运行相关配置,只能在swarm模式使用

                • environment

                  • 添加环境变量

                • networks

                  • 加入网络

                • ports

                  • 暴露容器端口,与-p相同,但端口不能低于60

                • volumes

                  • 映射宿主机路径或映射配置文件

                • restart

                  • 重启策略

        • docker-compose的常用命令

          • build

            • 重新构建服务

          • ps

            • 列出容器

          • up

            • 创建和启动容器

              • docker-compose up -d

          • exec

            • 在容器里面执行命令

          • scale

            • 指定一个服务器启动的数量,注意不能映射端口

          • top

            • 显示容器进程

          • logs

            • 查看容器输出

          • down

            • 删除容器,网络,数据卷,和镜像

          • stop/start/restart

            • 停/启/重启服务

            • stop后不加容器名称则是关闭所有容器

    • harbor

      • 简单来说就是镜像仓库,能够上传,拉取镜像并且提供一些功能如访问控制,创建副本,访问日志,web界面管理等。

      • 建议使用离线安装包

        • https://github.com/goharbor/harbor/releases/tag/v2.4.3 https://github.com/goharbor/harbor/releases/download/v2.4.3/harbor-offline-installer-v2.4.3.tgz

      • 下载后上传到服务器,然后解压

        • 进入目录后将模板配置文件 harbor.yml.tmpl,去掉tmpl就是配置文件,然后修改几项参数

          • hostname: 192.168.10.102

            • harbor节点所在ip

          • harbor_admin_password: pwd123

            • 根据需要修改管理员密码

          • 如果没有https的服务需要将有关选项注释掉

      • 需要检查是否有docker-compose,harbor安装需要该组件,/etc/local/bin/docker-compose

        • 运行./install.sh

      • 之后就可以进行访问了

      • harbor的使用可以结合docker push

        • 第一需要在/etc/docker/daemon.json中添加harbor服务器

        • 第二要有授权的账号

        • 第三要将上传的镜像名称修改成规范的镜像名称

          • 主机ip:端口/项目名称/镜像名称:标签

        • 之后才可以进行上传

复制内容到xmind即可形成条理性笔记。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/397833.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【深度学习】TTS,CosyVoice,推理部署的代码原理讲解分享

文章目录 demo代码加载配置文件speech_tokenizer_v1.onnx(只在zero_shot的时候使用)campplus.onnx(只为了提取说话人音色embedding)`campplus_model` 的作用代码解析具体过程解析总结示意图CosyVoiceFrontEndCosyVoiceModel推理过程总体推理过程推理速度很慢: https://git…

基于Python爬虫+机器学习的长沙市租房价格预测研究

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

数据库(三):DML

DML,全称Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增、删、改、查。 一、添加数据(INSERT) 注意事项: ①插入数据时,指定的字段顺序需要与值的顺序…

手机在网时长查询接口如何对接?(二)

一、什么是手机在网时长查询接口? 传入手机号码,查询该手机号的在网时长,返回时间区间,支持携号转网号码查询。 二、手机在网时长查询接口适用于哪些场景? 比如:信用评估辅助 (1&#xff09…

二叉树建堆全过程(数组实现)

定义 typedef int HPDataType;typedef struct Heap {HPDataType* a;//用数组存数据int size;//当前数组存放数据的数量int capacity;//数组容量}HP; 即将要实现的功能 void HPInit(HP* php);//初始化 void HPPush(HP* php, HPDataType x);//堆尾插入数据(数组尾部…

论文阅读:Efficient Core Maintenance in Large Bipartite Graphs | SIGMOD 2024

还记得我们昨天讨论的《Querying Historical Cohesive Subgraphs over Temporal Bipartite Graphs》这篇论文吗? https://blog.csdn.net/m0_62361730/article/details/141003301 这篇(还没看的快去看) 这篇论文主要研究如何在时间双向图上查询历史凝聚子图,而《E…

深度学习入门指南(1) - 从chatgpt入手

2012年,加拿大多伦多大学的Hinton教授带领他的两个学生Alex和Ilya一起用AlexNet撞开了深度学习的大门,从此人类走入了深度学习时代。 2015年,这个第二作者80后Ilya Sutskever参与创建了openai公司。现在Ilya是openai的首席科学家,…

手机误操作导致永久删除照片的恢复方法有哪些?

随着手机功能的不断增强和应用程序的不断丰富,人们越来越依赖手机,离不开手机。但有时因为我们自己的失误操作,导致我们手机上重要的照片素材被永久删除,这时我们需要怎么做,才能找回我们被永久删除的照片素材呢&#…

Langchain框架深度剖析:解锁大模型-RAG技术的无限潜能,引领AI应用新纪元

文章目录 前言一、Langchain 框架概述二、大模型-RAG技术原理三、应用示例1.RAG案例一(私有文档直接读取-问答)2.RAG案例二(Vue上传文件结合文件内容回答问题)3.RAG案例三(Vue秒传文件结合文件内容回答问题&#xff09…

无字母数字webshell命令执行

<?php if(isset($_GET[code])){$code $_GET[code];if(strlen($code)>35){die("Long.");}if(preg_match("/[A-Za-z0-9_$]/",$code)){die("NO.");}eval($code); }else{highlight_file(__FILE__); }限制&#xff1a; 1.webshell长度不超过…

【海思SS626 | 内存管理】海思芯片的OS内存、MMZ内存设置

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

基于jsp的宠物领养与服务管理系统(源码+论文+部署讲解等)

博主介绍&#xff1a;✌全网粉丝10W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术栈介绍&#xff1a;我是程序员阿龙&#xff…

【SpringBoot】自定义注解<约定式i18n国际化>终极升级版方案源码Copy

零、前言 在后端对于 SpringBoot 的 数据库数据&#xff0c;需要国际化的字段和主要显示字段是分离的&#xff0c;为了避免大耦合性&#xff0c;与用户端的国际化字段处理问题&#xff0c;统一采用主要显示数据的实体字段。为此&#xff0c;我设计了一套解决方案&#xff0c;通…

el-form-item,label在上方显示,输入框在下方展示

本来是两排展示去写&#xff0c;设计要求一排展示&#xff0c;label再上方&#xff0c;输入框、勾选框在下方&#xff1b;只能调整样式去修改&#xff1b;参考label-position这个属性 代码如下&#xff1a; <el-form ref"form" :model"formData" clas…

React应用(基于react脚手架)

react脚手架 1.xxx脚手架&#xff1a;用来帮助程序员快速创建一个基于xxx库的模板项目 包含了所有需要的配置&#xff08;语法检查&#xff0c;jsx编译&#xff0c;devServer&#xff09;下载好了所有相关的依赖可以直接运行一个简单结果 2.react提供了一个用于创建react项目…

AWVS——Web 应用漏洞扫描的强大工具

一、引言 在网络安全日益重要的今天&#xff0c;Web 应用的安全性备受关注。Acunetix Web Vulnerability Scanner&#xff08;简称 AWVS&#xff09;作为一款知名的 Web 应用漏洞扫描工具&#xff0c;为保障 Web 应用的安全发挥了重要作用。本文将详细介绍 AWVS 的功能、特点、…

【vulhub靶场之spring】——

简介&#xff1a; Spring是Java EE编程领域的一个轻量级开源框架&#xff0c;该框架由一个叫Rod Johnson的程序员在2002年最早提出并随后创建&#xff0c;是为了解决企业级编程开发中的复杂性&#xff0c;业务逻辑层和其他各层的松耦合问题&#xff0c;因此它将面向接口的编程思…

【Postman工具】

一.接口扫盲 1.什么是接口&#xff1f; 接口是系统之间数据交互的通道。拿小红到沙县点餐为例&#xff1a;小红想吃鸭腿饭。她要用什么语言来表达&#xff1f;跟谁表达&#xff1f;通过什么表达&#xff1f;按照生活习惯应该是&#xff1a;小红根据菜单对服务员用中文表达她想要…

联通数科如何基于Apache DolphinScheduler构建DataOps一体化能力平台

各位小伙伴晚上好&#xff0c;我是联通数字科技有限公司数据智能事业部的王兴杰。 更好的阅读体验可前往原文阅读:巨人肩膀 | 联通数科如何基于Apache DolphinScheduler构建DataOps一体化能力平台 今天&#xff0c;我将和大家聊一聊联通数字科技有限公司是如何基于Apache Dol…

k8s创建secret并在container中获取secret

k8s创建secret并在container中获取secret 本文使用的deployment和service与我的上一篇文章一样。link也放在下面了&#xff0c;如果不懂什么事deployment和service&#xff0c;可以先看我的上一篇文章。 k8s使用kustomize来部署应用 下面我们将通过创建secret开始。secret是我…