首页 > 其他分享 >docker compose学习笔记

docker compose学习笔记

时间:2023-07-13 19:55:10浏览次数:40  
标签:容器 compose 笔记 nginx registry docker REGISTRY

目录

链接: https://www.cnblogs.com/wtzbk/p/15125977.html

1、docker带来的问题

  • 多次使用 Dockerfile Build Image 或者 DockerHub 拉取 Image;
  • 需要创建多个 Container,多次编写启动命令;
  • Container 互相依赖的如何进行管理和编排;

2、docker compose的好处

  • 提供工具用于定义和运行多个 docker 容器应用;
  • 使用 yaml 文件来配置应用服务(docker-compse.yml);
  • 可以通过一个简单的命令 docker-compse up 可以按照依赖关系启动所有服务;
  • 可以通过一个简单的命令 docker-compose down 停止所有服务;
  • 当一个服务需要的时候,可以很简单地通过 --scale 进行扩容;

3、docker compose的介绍

  • Docker Compose 是一个工具,用于定义和运行多容器应用程序的工具;
  • Docker Compose 通过 yml 文件定义多容器的 docker 应用;
  • Docker Compose 通过一条命令根据 yml 文件的定义去创建或管理多容器;

4、安装

1)下载:https://github.com/docker/compose/releases

注:https://dn-dao-github-mirror.daocloud.io/docker/compose/releases ,下载太慢的话可以去这个网址下载

2)拷贝:将下载的文件拷贝到服务器上的 /usr/local/bin/docker-compose 目录

3)赋权:sudo chmod +x /usr/local/bin/docker-compose

4)检查:docker-compose --version

5、版本兼容性

docker-compose 与 docker 引擎之间有版本对应关系,需要检查是否满足要求。

6、常见的命令

注:可以 docker-compose --help 查看帮助

#构建启动 nignx 容器
docker-compose up -d nginx                     
#进入 nginx 容器中
docker-compose exec nginx bash            
#将会停止UP命令启动的容器,并删除容器
docker-compose down                             
#显示所有容器
docker-compose ps                                   
#重新启动 nginx 容器
docker-compose restart nginx                   
#构建镜像
docker-compose build nginx      
#不带缓存的构建
docker-compose build --no-cache nginx 
#查看nginx的日志
docker-compose logs  nginx                      
#查看nginx的实时日志
docker-compose logs -f nginx                   
#验证(docker-compose.yml)文件配置,
#当配置正确时,不输出任何内容,当文件配置错误,输出错误信息
docker-compose config  -q                        
#以json的形式输出nginx的docker日志
docker-compose events --json nginx       
#暂停nignx容器
docker-compose pause nginx                 
#恢复ningx容器
docker-compose unpause nginx             
#删除容器
docker-compose rm nginx                       
#停止nignx容器
docker-compose stop nginx                    
#启动nignx容器
docker-compose start nginx

7、举个栗子

说明:启用一个带证书和鉴权的第三方仓库

1)编写 docker-compose.yml 文件

version: '3.0'
services:
  third-part-registry:
    image: registry:latest
    container_name: third-part-registry
    ports: 
      - 444:5000/tcp
    environment: 
      - REGISTRY_HTTP_TLS_CERTIFICATE=/certs/server.crt
      - REGISTRY_HTTP_TLS_KEY=/certs/server.key
      - REGISTRY_AUTH=htpasswd
      - REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm
      - REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd
    volumes: 
      - /root/registry/external_repository/data:/var/lib/registry
      - /root/registry/external_repository/certs:/certs
      - /root/registry/external_repository/auth:/auth      
    restart: always

2)检查 docker-compose.yml 语法是否正确:

命令:docker-compose config

说明:执行上面的命令,如果不发生报错,说明语法没有发生错误,注意 yml 文件需要在当前目录下,同时会生成下面的显示,即在原始 yml 的基础上补齐一些默认的选项。

name: external_repository
services:
  third-part-registry:
    container_name: third-part-registry
    environment:
      REGISTRY_AUTH: htpasswd
      REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd
      REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm
      REGISTRY_HTTP_TLS_CERTIFICATE: /certs/server.crt
      REGISTRY_HTTP_TLS_KEY: /certs/server.key
    image: registry:latest
    networks:
      default: null
    ports:
    - mode: ingress
      target: 5000
      published: "444"
      protocol: tcp
    restart: always
    volumes:
    - type: bind
      source: /root/registry/external_repository/data
      target: /var/lib/registry
      bind:
        create_host_path: true
    - type: bind
      source: /root/registry/external_repository/certs
      target: /certs
      bind:
        create_host_path: true
    - type: bind
      source: /root/registry/external_repository/auth
      target: /auth
      bind:
        create_host_path: true
networks:
  default:
    name: external_repository_default

3)使用上面的 yml 启动:docker-compose up -d // -d 表示在后端运行

4)查看启动的 docker 容器:

[root@HN01 external_repository]# docker ps
CONTAINER ID    IMAGE        COMMAND         CREATED       STATUS       PORTS          NAMES
b8eede952bf0    registry:latest   "/entrypoint.sh /etc…"  About a minute ago  Up 9 seconds    0.0.0.0:444->5000/tcp  third-part-registry

标签:容器,compose,笔记,nginx,registry,docker,REGISTRY
From: https://www.cnblogs.com/selonsy/p/17551964.html

相关文章

  • hadoop性能调优笔记
    Hadoop调优mapred.tasktracker.map.tasks.maximum 官方解释:Themaximumnumberofmaptasksthatwillberun  simultaneouslybyatasktracker. 我的理解:一个tasktracker最多可以同时运行的map任务数量 默认值:2 优化值:mapred.tasktracker.map.tasks.maximum=cpu数量 ......
  • 【学习笔记】插头 DP
    插头DP,是一类解决网格图上连通性问题的状压DP。相关概念轮廓线:已经决策的方格和未决策方格之间的分界线。插头:用来描述连通性,一个方格与其某一方向的相邻方格连通,则称这个方格有某个方向的插头。容易发现在轮廓线上,每个时刻都是有\(n\)个上插头与\(1\)个左插头。如图,红......
  • wireshark学习笔记
    参考博客1、https://www.cnblogs.com/yuanyuzhou/p/16308963.html功能说明使用方法1、打开wireshark之后,首先需要选择抓包的网卡,上面有显示每个网卡的流量,不知道是哪张网卡的话,可以试试多访问几次,看看流量变化情况选择。2、假如本机ip为:10.169.62.89,查看各个网卡的ip,发现是:以......
  • harbor学习笔记
    linux环境离线安装1、版本:harbor-offline-installer-v2.8.0-rc1.tgz2、一次成功的流程(仅针对于上面的版本):前置条件:需要预先安装docker、docker-compose[root@HN01harbor]#dockerversionClient:Version:18.09.0EulerVersion:18.09.0.100APIversion......
  • docker-compose部署若依
    1、通过Dockerfile构建:jar镜像1.1、application.yaml(要注意的地方)#项目相关配置ruoyi:profile:/home/javaProject/profile#文件上传地址:自己写自己linux路径#开发环境配置server:#服务器的HTTP端口,默认为8080->注意端口port:8080#用户配置user:......
  • 动态规划DP入门笔记
    动态规划以斐波那契数列为例:\(f_i\)状态\(f_i=f_{i-1}+f_{i-2}\)转移方程\(f_0=0\),\(f_1=1\)初始化dp的实现方法一般有三种,其中的两种(最重要的)如下#include<bits/stdc++.h>usingnamespacestd;intf[200010];signedmain(){ intn; scanf("%d",&n);......
  • 数据结构练习笔记——单链表的创建
    单链表的创建【问题描述】从键盘终端输入若干整数,为其创建带头节点的单链表存储结构【样例输入】51223323345【样例输出】1223323345【样例说明】第一行的数为单链表中元素的个数,后面为各元素的值#include<iostream>usingnamespacestd;structLNode{......
  • StarRocks Segment源码阅读笔记--SegmentIterator创建
    StarRocks中要读取Segment中的数据,需要先创建SegmentIteratorStatusOr<ChunkIteratorPtr>Segment::_new_iterator(constSchema&schema,constSegmentReadOptions&read_options){DCHECK(read_options.stats!=nullptr);//tryingtoprunethecurrentse......
  • 虚树 学习笔记
    虚树学习笔记引入我们在解决树上问题时,往往都是对整棵树进行处理,或者每次询问都对一个点、点对进行处理,这类题型一般都可以通过dp、树剖解决;然而,有一类问题要求我们每次对树上一些关键点进行处理。这类问题的特点就是询问次数多,而询问的点的总数不多。可如果我们每次都把整棵......
  • office学习笔记
    目录Excel函数使用VLOOKUP制作四象限图wordPowerPointExcel函数使用VLOOKUP使用说明:https://support.microsoft.com/zh-cn/office/vlookup-函数-0bbc8083-26fe-4963-8ab8-93a18ad188a1功能:需要在表格或区域中按行查找内容时,请使用VLOOKUP。说明:在这一最简单的形式中,VLOOK......