DockerCompose

什么是DockerCompose


  • DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器
  • Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行
version: "3.8"
services:
  # 直接拉取镜像仓库中的镜像运行
  mysql:
    image: mysql:5.7.25
    environment: # 运行参数
      MYSQL_ROOT_PASSWORD: 123
    volumes:# 数据卷
      - /tmp/mysql/data:/var/lib/mysql
      - /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/hmy.cnf
  # 自定义镜像来运行
  web_service1:
    build:
      context: ./gateway
      dockerfile: Dockerfile
    ports:
      - 8080: 8080
  web_service2:
    build:
      context: ./user-service
      dockerfile: Dockerfile
    ports:
      - 8081: 8081
  ...

Compose文件其实就是将docker命令通过配置的方式进行使用

DockerCompose部分关键字


字段 描述
build 指定 Dockerfile 文件名,要指定Dockerfile文件需要在build标签的子级标签中使用dockerfile标签指定
dockerfile 构建镜像上下文路径
context 可以是 dockerfile 的路径,或者是指向 git 仓库的 url 地址
image 指定镜像(image与build不弄同时使用)
command 执行命令,覆盖容器启动后默认执行的命令
container_name 指定容器名称,由于容器名称是唯一的,如果指定自定义名称,则无法scale指定容器数量
deploy 指定部署和运行服务相关配置,只能在 Swarm 模式使用
environment 添加环境变量
networks 加入网络,引用顶级networks下条目
network_mode 设置容器的网络模式,如 host,bridge,...
ports 暴露容器端口,与 -p 相同,但端口不能低于 60
volumes 挂载一个宿主机目录或命令卷到容器,命名卷要在顶级 volumes 定义卷名称
volumes_from 从另一个服务或容器挂载卷,可选参数 :ro 和 :rw,仅版本 '2' 支持
hostname 容器主机名
sysctls 在容器内设置内核参数
links 连接到另外一个容器,- 服务名称[:服务别名]
privileged 用来给容器root权限,注意是不安全的,true ,false
restart 设置重启策略,no,always,no-failure,unless-stopped。no,默认策略,在容器退出时不重启容器。on-failure,在容器非正常退出时(退出状态非0),才会重启容器。on-failure:3,在容器非正常退出时重启容器,最多重启3次。always,在容器退出时总是重启容器。unless-stopped,在容器退出时总是重启容器,但是不考虑在 Docker 守护进程启动时就已经停止了的容器。
depends_on 在使用Compose时,最大的好处就是少打启动命令,但一般项目容器启动的顺序是有要求的,如果直接从上到下启动容器,可能会因为容器依赖问题而启动失败。例如在没启动数据库容器的时候启动应用容器,应用容器会因为找不到数据库而退出。depends_on标签用于解决容器的依赖、启动先后的问题。

DockerCompose详细语法参考官网:https://docs.docker.com/compose/compose-file/


DockerCompose安装


# 先在控制台设置一个变量,后面要用到
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins

  • 命令安装
curl -SL https://github.com/docker/compose/releases/download/v2.24.0/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
  • 手动安装:
下载地址:https://github.com/docker/compose/releases
mv <手动下载的文件> $DOCKER_CONFIG/cli-plugins/docker-compose
# 赋予执行权限
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
# 查看版本
$DOCKER_CONFIG/cli-plugins/docker-compose version
# 或
docker compose version

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

相关阅读更多精彩内容

友情链接更多精彩内容