欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Docker-Docker Compose的安装与使用

程序员文章站 2022-05-15 13:10:24
...

Docker Compose是什么

  • Docker Compose是用于定义和运行多容器Docker应用程序的工具。通过Compose,您可以使用YAML文件来配置应用程序的服务。然后使用一个命令,就可以从配置中创建并启动所有服务。
  • 简单说就是,为虚拟化容器实现批处理提供了一种实现方式
  • 使用Compose基本上是三步
    • 编辑Dockerfile定义应用环境,以便可以在任何地方复制它
    • 定义组成应用程序的服务,docker-compose.yml用于描述容器与容器之间的运行环境
    • 执行 docker-compose up,启动您的整个应用程序(你所描述的)
  • docker-compose.yml看起来是
    version: '3'
    services:
      web:
        build: .
        ports:
        - "5000:5000"
        volumes:
        - .:/code
        - logvolume01:/var/log
        links:
        - redis
      redis:
        image: redis
    volumes:
      logvolume01: {}
    
    • 注意yaml的语法规则
  • Docker Compose具有管理整个应用程序声明周期的命令
    • 启动,停止和重建服务
    • 查看正在运行的服务的状态
    • 流运行服务的日志输出
    • 对服务运行一次性命令

Docker Compose的安装

  • 前置条件
    • 已安装Docker Engine
  • 下载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
    
  • 将可执行权限应用于二进制文件
    sudo chmod +x /usr/local/bin/docker-compose
    
  • 测试安装
    docker-compose --version
    

Docker Compose的卸载

  • 使用curl安装的docker compose的卸载
    sudo rm /usr/local/bin/docker-compose
    
  • 使用pip安装的docker compose的卸载
    pip uninstall docker-compose
    

Compose File与Docker版本上的关系

Compose file format Docker Engine release
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+
2.3 17.06.0+
2.2 1.13.0+
2.1 1.12.0+
2.0 1.10.0+
1.0 1.9.1.+

Docker Compose常用命令

命令 描述 命令 描述
build Usage: build [options] [–build-arg key=val…] [SERVICE…] --no-cache 不使用缓存构建镜像 重新构建服务 up Usage: up [options] [–scale SERVICE=NUM…] [SERVICE…] -d 在后台运行容器 -no-deps 不启动连接服务 --no-recreate 如果容器存在,不重建他们 --no-build 不构建镜像,即使它丢失 --build 启动容器下构建镜像 --scale SERVICE=NUM 指定一个服务(容器)的启动数量 创建和启动容器
config Usage: config [options] -q, --quiet 只验证不打印 --services 只打印服务名称,每行一个 --volumes 打印数据卷名称,每行一个 验证和查看Compose文件 stop Usage: stop [SERVICE…] 停止服务
exec Usage: exec [options] SERVICE COMMAND [ARGS…] -d 在后台运行命令 --privileged 给这个进程赋予特权权限 -u, --user USER 作为该用户运行该命令 -T 禁用分配伪终端,默认分配一个终端 --index=index 多个容器时的索引数字,默认1 在运行的容器里执行命令 start Usage: start [SERVICE…] 启动服务
port Usage: port [options] SERVICE PRIVATE_PORT --protocol=proto tcp或udp,默认tcp --index=index 多个容器时的索引数字,默认1 打印绑定的开放端口 restart Usage: restart [options] [SERVICE…] 重启服务
ps Usage: ps [options] [SERVICE…] -q 只显示ID 列出容器 top Usage: top [SERVICE…] 显示容器运行进程
rm Usage: rm [options] [SERVICE…] -f, --force 强制删除 -s, --stop 删除容器时如果需要先停止容器 -v 删除与容器相关的任何匿名卷 删除停止的服务容器 logs -f, --follow 实时输出日志 -t, --timestamps 显示时间戳 --tail=“all” 从日志末尾显示行数 显示容器的输出
scale Usage: scale [options] [SERVICE=NUM…] 指定一个服务启动容器数量 down 停止容器和删除容器、网络、数 据卷和镜像
  • 查看命令
    docker-compose --help
    

试用Docker Compose(一)

  • 选取合适的路径
  • 创建与编辑docker-compose.yml文件
    touch docker-compose.yml
    
    version: '3'
    services:
      web:
        build: .
        ports:
          - "8888:80"
    
  • 创建与编辑Dockerfile
    touch Dockerfile
    
    FROM centos:7
    MAINTAINER learn docker compose
    RUN yum install -y httpd php php-gd php-mysql
    RUN echo "<?php phpinfo()?>" > /var/www/html/index.php
    CMD ["/usr/sbin/httpd","-D","FOREGROUND"]
    EXPOSE 80
    
  • 启动,该命令需要在Dockerfile所在路径下执行
    docker-compose up
    
  • 查看效果
    • 浏览器访问 对应主机IP:8888
    • docker-compose ps,该命令需要在Dockerfile所在路径下执行
      • Docker-Docker Compose的安装与使用
相关标签: docker compose