Docker:docker-compose 应用

Posted wish-yang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker:docker-compose 应用相关的知识,希望对你有一定的参考价值。

docker-compose概述

  Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务 。

Compose 使用的三个步骤:

  • 使用 Dockerfile 定义应用程序的环境。

  • 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。

  • 最后,执行 docker-compose up 命令来启动并运行整个应用程序。

docker-compsoe安装

# 安装
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

# 设置文件权限
sudo chmod +x /usr/local/bin/docker-compose

# 查看版本
docker-compose version

docker-compose lnrmp 应用

github源码示例:https://github.com/walkyang/docker-srm

# 示例,docker-compose安装lnrmp
# 示例源码:https://github.com/walkyang/docker-srm
version: "3.6" # 确定docker-composer文件的版本 
services: #一组服务或者一组容器
    php:
        build: # 根据dockerfile构建镜像及构建为容器
            context: ./php
        image: php #指定容器的镜像文件
        container_name: php-001 # 容器的名称
        ports: #容器与宿主机的端口
            - "9000:9000"
        networks: # 引入外部预先定义的网络
            network-srm:
                ipv4_address: 172.20.0.12 #设置IP地址
        volumes: #挂载数据文件
            - /root/docker-srm/srm-001/www:/var/www/html
            - /root/docker-srm/srm-001/php/conf/php.ini:/usr/local/etc/php.ini
        working_dir: /var/www/html #工作目录
    nginx:
        build: # 根据dockerfile构建镜像及构建为容器
            context: ./nginx
        image: nginx #指定容器的镜像文件
        container_name: nginx-001 # 容器的名称
        ports: #容器与宿主机的端口
            - "80:80"
        networks: # 引入外部预先定义的网络
            network-srm:
                ipv4_address: 172.20.0.11 #设置IP地址
        volumes: #挂载数据文件
            - /root/docker-srm/srm-001/nginx/conf.d:/etc/nginx/conf.d
    mysql:
        build: # 根据dockerfile构建镜像及构建为容器
            context: ./mysql
        image: mysql #指定容器的镜像文件
        container_name: mysql-001 # 容器的名称
        ports: #容器与宿主机的端口
            - "3306:3306"
        networks: # 引入外部预先定义的网络
            network-srm:
                ipv4_address: 172.20.0.13 #设置IP地址
        environment: # mysql设置root密码
            MYSQL_ROOT_PASSWORD: 123456
    redis:
        build: # 根据dockerfile构建镜像及构建为容器
            context: ./redis
        image: redis5 #指定容器的镜像文件
        container_name: redis-001 # 容器的名称
        ports: #容器与宿主机的端口
            - "6379:6379"
        networks: # 引入外部预先定义的网络
            network-srm:
                ipv4_address: 172.20.0.14 #设置IP地址
networks: #设置网络模块
    #使用之前定义好的
    network-srm:
        external:
            name: network-srm
    # 自定义网络
    # network-srm:
    #     driver: bridge
    #     ipam:
    #         config:
    #             - subnet : "172.20.0.0/24"

docker-compose 对应版本version

  1. 先查出docker version 查出版本号

  2. 根据下面表格找到对应版本verison。更多参考: https://docs.docker.com/compose/compose-file/

3.819.03.0+
3.7 18.06.0+
3.6 18.02.0+
3.5 17.12.0+
3.4 17.09.0+
3.3 17.06.0+
3.2 17.04.0+
3.1 1.13.1+
3.0 1.13.0+
2.4 17.12.0+

docker-compose 命令

# 构建镜像和容器
docker-compose up -d
# 删除容器
docker-compose down
# 重启容器
docker-compose restart
# 停止容器
docker-compose stop

 

以上是关于Docker:docker-compose 应用的主要内容,如果未能解决你的问题,请参考以下文章

docker-compose基础

docker-compose

docker与docker-compose介绍,对比与使用

使用docker-compose.yml在swarm中部署应用

连接两个 docker-compose 实例

docker-compose常用命令