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即可形成条理性笔记。 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值