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:[镜像版本号]

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

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

原文地址:https://www.cnblogs.com/wangcheng9418/p/12577499.html