• docker3 docker-compose


    docker3 docker-compose

    标签(空格分隔):编排文件 docker


    dockfile -> image
    docker-compose.yml -> project cluster

    docker-compose.yml

    version: "3.3"
    services:
    nginx: #容器的名称 服务名
    image: nginx #容器的镜像 nginx:1.12
    ports:
    - "80:80"
    links:
    - app
    volumes:
    - "./nginx.conf.d/:/etc/nginx/conf.d/"

    app:  #自己取的
     image:myapp/app
     
     
    eureka:  #服务名
        build: ./eureka  #指定dockerfile所在路径
        ports: 
            - "8761:8761" #指定端口映射
        expose:
            - 8761  #暴露端口
    

    docker compose安装

    $ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

    chmod +x /usr/local/bin/docker-compose

    docker-compose -v

    pip3 install docker-compose

    podman compose安装

    pip3 install podman-compose

    启动容器

    docker-compose up -d

    nginx 例如 上面

    server {
    listen 80;
    server_name www.hosix.cn;
    access_log /var/log/nginx/nginx.log main;
    location / {
    proxy_pass http://app:8080/;
    }
    }


    docker-compose ps

    查看容器

    docker-compose start

    启动所有容器

    docker-compose stop

    关闭所有容器

    docker-compose rm

    删除容器

    docker-compose kill

    直接杀掉

    docker-compose down

    关闭并移除

    docker-compose 结构

    三层 project service container
    工程 微服务 容器

    docker-compose.yml常用指令

    image

    指定镜像

    build

    指定dockerfile文件的路径

    command

    容器启动之后的默认命令
    command: bundle exec thin -p 3000

    连接到其他服务中的容器
    web:
    links:
    - db
    - db:database
    - redis

    连接到docker-compose.yml 外部的容器 甚至并非compose管理的容i去
    external_links:
    - redis_1
    - project_db_1:mysql
    - project_db_1:postgresql

    ports

    暴露端口信息 类似 run -p
    ports:
    - "3000"
    - "3000-3005"
    - "8000-8000"

    expose

    暴露端口,只讲端口暴露给连接的服务,不暴露给宿主机
    expose:
    - "3000"
    - "8000"

    vulumes

    卷挂载路径地址
    vulumes:
    - /var/lib/mysql
    - /opt/data:/var/lib/mysql
    - ./cache:/tmp/cache

    volumes_from

    从另一个服务或者容器挂载卷
    volumes_from:
    - service_name
    - service_name:ro
    - container:container_name

    environment

    设置环境变量。可以使用数组或则字典两种方式
    RACK_ENV:development
    SHOW:'true'
    SESSION_SECRET:

    docker-compose 高可用

    新建文件夹 /app-ha
    创建 docker-compose.yml 和多个服务的文件夹

    version: "3.3"
    services:
    peer1: #容器的名称 服务名
    image: appa #容器的镜像 nginx:1.12
    ports:
    - "8081:8081"
    enviroment:
    - spring.profiles.active=peer1
    peer2: #容器的名称 服务名
    image: appa #容器的镜像 nginx:1.12
    ports:
    - "8082:8082"
    enviroment:
    - spring.profiles.active=peer2
    appb: #容器的名称 服务名
    image: appb #容器的镜像 nginx:1.12
    # ports:
    # - "8083:8083"

    docker 扩展

    docker-compose scale appb=2

  • 相关阅读:
    Eclipse 3.7(代号Indigo) 中文字体太小解决办法(转)
    tomcat配置及使用 环境变量设置
    Eclipse启动的时候窗口一闪就关的解决办法(转)
    Jquery datatables 重载数据方法
    手把手教你从 Core Data 迁移到 Realm
    App 启动加载广告页面思路
    iOS 类似美团外卖 app 两个 tableView 联动效果实现
    从 ReactiveCocoa 中能学到什么?不用此库也能学以致用
    几句话实现导航栏透明渐变 – iOS
    谈谈iOS中粘性动画以及果冻效果的实现
  • 原文地址:https://www.cnblogs.com/hywhyme/p/14500904.html
Copyright © 2020-2023  润新知