docker compose 安装、常用命令及参数详解

       在现代应用开发和部署中,Docker已经成为不可或缺的工具。而 docker compose作为Docker生态系统中的重要组成部分,能够帮助我们轻松管理和运行多容器应用程序。本文将详细介绍 Docker Compose 的安装方法、常用命令及其参数,帮助你快速上手并高效使用Docker Compose。

1 docker compose简介

docker compose主要是用于定义和运行多容器Docke 应用程序。通过一个docker-compose.yml文件,你可以配置应用程序的服务、网络以及数据卷等,并使用一条命令启动所有服务。无论是开发、测试还是生产环境,docker compose都能显著简化多容器应用的管理。

2 docker compose离线安装

2.1 下载安装包

github下载地址:https://github.com/docker/compose/tags

如果下载缓慢,可以复制链接地址到迅雷进行下载,这样会快很多

链接地址:https://github.com/docker/compose/releases/download/v2.33.1/docker-compose-linux-x86_64

2.2 移动文件并赋予执行权限

mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose

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

[root@node3 tool]# mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose

[root@node3 tool]# chmod a+x /usr/local/bin/docker-compose

[root@node3 tool]#

2.3 验证安装

docker-compose -v

[root@node3 tool]# docker-compose -v

Docker Compose version v2.33.1

[root@node3 tool]#

3 docker-compose常用命令

3.1 docker-compose up

作用:启动服务

命令格式:

docker-compose up [选项]

常用参数:

-d:后台运行

--build:启动前重新构建镜像

--force-recreate:强制重新创建容器

示例:

docker-compose up -d

3.2 docker-compose down

作用:停止并删除服务

命令格式:

docker-compose down [选项]

常用参数:

-v:删除数据卷

--rmi all:删除所有镜像

示例:

1)停止并移除容器、网络

docker-compose down

2)停止并移除容器、网络、卷以及镜像

docker-compose down -v --rmi all

3)移除构建的本地镜像

docker-compose down --rmi local

3.3 docker-compose restart

作用:重启服务

示例:

docker-compose restart

3.4 docker-compose ps

作用:查看服务状态

示例:

docker-compose ps

3.5 docker-compose logs

作用:查看服务日志

命令格式:

docker-compose logs [选项]

常用参数:

-f:实时查看日志

--tail n:查看最后n行日志

示例:

1)查看服务日志

docker-compose logs

2)查看特定服务日志

docker-compose logs web

3)查看特定服务最后50行日志

docker-compose logs --tail 50 web

3.6 docker-compose bulid

作用:构建镜像

命令格式:

docker-compose bulid [选项]

常用参数:

--no-cache:不使用缓存构建镜像

示例:

docker-compose build

3.7 docker-compose exec

作用:在运行的容器中执行命令

示例:

docker-compose exec web bash

3.8  docker-compose pull

作用:拉取服务所需的镜像

示例:

docker-compose pull

3.9 docker-compose config

作用:验证docker-compose.yml文件的语法

示例:

docker-compose config

3.10 docker-compose rm

作用:删除已停止的compose应用

命令格式:

docker-compose rm [选项] [服务]

常用参数:

-f:指定使用的compose配置文件,默认配置文件docker-compose.yml

-v:删除容器同时删除由docker-compose.yml文件定义的数据卷

-a:删除所有服务容器

--rmi type:删除镜像,删除构建镜像时产生的中间镜像和构建缓存(type包括all(删除所有镜像)、local(只删除本地镜像)、built(只删除通过docker-compose构建的镜像))

示例:

1)删除所有停止的容器

docker-compose rm

2)删除所有容器

docker-compose rm -a

3)删除容器和卷

docker-compose rm -v

4)使用指定的compose配置文件

docker-compose -f test-compose.yml rm

5)删除镜像

docker-compose rm --rmi local

4 docker-compose.yml配置详解

docker-compose.yml文件是docker compose的核心配置文件,用于定义和运行多容器应用程序。通过这个文件,可以配置服务、网络、卷等资源.

4.1基本结构

docker-compose.yml文件采用YAML格式,通常包含:

version: 3  #指定docker compose文件版本

services:    #定义服务

  service1:  #服务名称

    #服务配置

  service2:

    #服务配置

    ...

networks:    #定义网络

  network1:

    #网络配置

    ...

volumes:      #定义卷

  volume1:

    #卷配置

    ...

4.2 服务配置

4.2.1 image

作用:指定服务使用的镜像

示例:

web:

  image: nginx:latest

4.2.2 build

作用:指定构建镜像的Dockerfile路径

示例:

web:

  build: ./app

4.2.3 posts

作用:映射容器端口到主机端口

示例:

web:

  ports:

    - "80:80"

    - "3306:3306"

4.2.4 volumes

作用:挂载主机目录或卷到容器

示例:

web:

  volumes:

    - ./html:/usr/share/nginx/html

    - db_data:/usr/local/mysql

4.2.5 environment

作用:设置环境变量

示例:

db:

  environment:

    MYSQL_ROOT_PASSWORD: root

    MYSQL_DATABASE: mysqldb

4.2.6 networks

作用:指定服务使用的网络

示例:

web:

  networks:

    - frontend

db:

  networks:

    - backend

4.2.7 healthcheck

作用:定义健康检查

示例:

web:

  healthcheck:

    test: ["CMD", "curl", "-f", "http://localhost"]

    interval: 10s

    timeout: 10s

    retries: 5

4.2.8 restart

作用:设置容器重启策略

可选值:

no:不重启(默认)

always:总是重启

on-failure:失败时重启

unless-stopped:除非手动停止,否则总是重启

示例:

web:

  restart: always

4.3 网络配置

4.3.1 自定义网络

作用:定义自定义网络

示例:

networks:

  frontend:

    driver: bridge

  backend:

    driver: bridge

4.3.2 使用外部网络

作用:使用已存在的外部网络

示例:

networks:

  default:

    external:

      name: localnetwork

4.4 卷配置

4.4.1 自定义卷

作用:定义自定义卷

示例:

volumes:

  db_data:

    driver: local

4.4.2 使用外部卷

作用:使用已存在的外部卷

示例:

volumes:

  db_data:

    external: true

    name: localvolume

4.5 示例

version: 3

services:

  web:

    image: nginx:latest

    ports:

      - "80:80"

    volumes:

      - ./html:/usr/share/nginx/html

    networks:

      - frontend

    depends_on:

      - db

    restart: always

    healthcheck:

      test: ["CMD", "curl", "-f", "http://localhost"]

      interval: 10s

      timeout: 10s

      retries: 5

  db:

    image: mysql:5.7.43

    environment:

      MYSQL_ROOT_PASSWORD: root

      MYSQL_DATABASE: mysqldb

    volumes:

      - db_data:/usr/local/mysql

    networks:

      - backend

networks:

  frontend:

    driver: bridge

  backend:

    driver: bridge

volumes:

  db_data:

    driver: local

5 总结

docker compose是一个强大的工具,可以轻松管理多容器应用程序,通过掌握其基本用法,可以高效地管理和部署多容器应用程序!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容