zoukankan      html  css  js  c++  java
  • docker-compose介绍及使用

     一、什么是docker-Compose

    二、docker-compose.yml 样例

    三、基本使用

    四、搭建私有仓库

     一、什么是docker-Compose

    1. Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。

    2. Docker-Compose将所管理的容器分为三层,分别是工程project,服务service以及容器container

    3. Docker-Compose项目由Python编写,调用Docker服务提供的API来对容器进行管理。

    4. Docker-compose默认配置文件为docker-compose.yml,可在配置文件中指定所需要启动每个容器所依赖的镜像、端口映射、文件挂载等配置

    yum安装步骤

    1. 添加epel源:yum install -y epel-release

    2. 安装python-pip yum install -y python-pip

    3. 安装docker-compose pip install docker-compose

    4. 验证是否安装成功  docker-compose -version

    Could not find a version that satisfies the requirement docker-compose (from versions: )
    No matching distribution found for docker-compose
    You are using pip version 8.1.2, however version 9.0.1 is available.
    You should consider upgrading via the 'pip install --upgrade pip' command.
    
    #可执行命令pip install —upgrade pip 更新一下pip版本就可以解决了
    第3步错误场景一:解决方案

    二、docker-compose.yml 样例

    # 指定版本信息,不同版本语法会有所差异
    version: '2'
    
    # 定义服务配置信息
    services:
        # 定义nginx容器
      nginx:
          # 指定根据哪个镜像来启动容器
        image: xxx.com/xwjs/nginx:1.17
          # 服务停止后自动重启
        restart: always
          # 指定容器与宿主机端口映射关系,8888是宿主机端口,80是容器端口,等同于docker run命令中的-p参数
        ports:
          - "8888:80"
            - "4433:443"
          # 容器挂载信息,: 前为宿主机目录,: 后为容器目录,$PWD代表当前目录,等同于docker run命令中的-v参数
        volumes:
          - $PWD/nginx/conf.d/:/etc/nginx/conf.d/
          - $PWD/nginx/logs/:/var/log/nginx/
          # 继承php容器的挂载目录
        volumes_from:
          - php
        # 与php容器进行关联,等同于docker run命令中的--links命令
        links:
          - php:php
          # 定义依赖容器,当docker-compose要启动nginx容器时会先启动其依赖的容器
        depends_on:
          - php
          # 定义容器启动后的名字
        container_name: nginx
      
        # 定义php容器
      php:
        image: xxx.com/xwjs/php:7.2
        restart: always
        volumes:
          - $PWD/html:/var/www/html:cached
        links:
          - mysql:mysql
        depends_on:
          - mysql
        container_name: php
    
        # 定义mysql容器
      mysql:
        image: xxx.com/xwjs/mysql:8.0
        restart: always
          # 开发环境配置,线上环境不配置
        ports:
          - "33066:3306"
          # 等同于docker run命令中的-e参数
        environment:
          MYSQL_ROOT_PASSWORD: 1
        volumes:
          - $PWD/mysql/:/var/lib/mysql/
        container_name: mysql
    
      # 定义phpmyadmin容器
      phpmyadmin:
        image: phpmyadmin/phpmyadmin
        restart: always
        links:
          - mysql:db
        ports:
          - "8080:80"
        container_name: phpmyadmin

     其他命令

    command:容器启动后要执行的命令

    networks:容器运行过程中使用的网络

    volumes:公共挂载目录(3.0以上可用)

    build:通过Dockerfile构建镜像并启动容器

    context:Dockerfile文件路径

    dockerfile:Dockerfile文件名字

    resource:资源限制,例如CPUmemory

    三、基本使用

    1. 在docker-compose.yml文件所在目录下执行命令docker-compose up -d
    2. 通过-f参数指定docker-compose.yml文件位置,在任意目录执行docker-compose -f /your/path/docker-compose.yml up -d

     常用命令:

    1. docker-compose up
    根据docker-compose.yml创建并启动所有容器
    2. docker-compose up -d
    以后台运行模式,根据docker-compose.yml创建并启动所有容器
    3. docker-compose ps
    列出当前yml配置文件中所定义的容器
    4. docker-compose stop|start|restart container_name
    对指定的容器进行停止、启动、重启操作
    5. docker-compose down
    停止并移除所有容器,包括挂载卷和网络
    6. docker-compose logs
    查看容器服务运行日志
    7. docker-compose rm container_name
    删除停止的容器

    四、搭建私有仓库

    为什么要搭建私有仓库

    1. 根据项目需求,通过Dockerfile定制服务镜像;

    2. 方便内部流通;

    在阿里云搭建私有仓库

    1. 创建命名空间;

    2. 创建仓库;

    3. 添加及修改镜像;

    # 添加镜像
    docker tag [ImageId] xxx.com/namespace/code:[镜像版本号]
    
    docker push xxx.com/namespace/code:[镜像版本号]

    更多用法可谷歌一下相应官网...

    如有错误的地方请联系博主更正

  • 相关阅读:
    Oracle Data Integrator 12c-----场景(Scenario)和调度(Schedule)
    Oracle 12c 用户创建、角色、权限
    CDB和PDB的创建、连接、启动、关闭
    Oracle Data Integrator 12c----包(Package)
    Oracle Data Integrator 12c-第一个映射
    Oracle Data Integrator 12c-模型(Model)和 数据存储(DataStore)
    解锁scott账户方法
    ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务
    VirtualBox内Linux系统怎样与Windows共享文件夹
    Changing the Language Used in ODI Studio
  • 原文地址:https://www.cnblogs.com/wangcheng9418/p/12577499.html
Copyright © 2011-2022 走看看