docker-compose简介

发布时间 2023-09-22 21:46:29作者: 枫飘过的天1

1.docker-compose简介
   实现docker容器集群的快速编排。管理分成三层:工程(project)、服务(service)、容器(container)
   没有解决负载均衡的问题,因此需要借助其它工具实现服务发现及负载均衡,比如 Consul
   工程配置文件默认文件docker-compose.yml,也可自定义(通过环境变量COMPOSE_FILE或-f参数自定义)

2.compose部署和执行
   Docker Compose 环境安装:(参考链接:https://www.cnblogs.com/ponyton/p/17075802.html)
   网站:https://github.com/docker/compose/releases 下载 docker-compose-linux-x86_64
   mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
   chmod +x /usr/local/bin/docker-compose
   docker-compose --version  
   docker-compose执行:
   docker-compose -f docker-compose.yml up -d
   // -f, --file FILE :使用特定的 compose 模板文件,默认为 docker-compose.yml
   // -p, --project-name NAME :指定项目名称,默认使用目录名称
   // -d :在后台运行
   docker ps -a
   cd /opt/compose_nginx/ && docker-compose ps #必须在docker-compose.yml所在目录执行此命令 
3.docker-compose配置常用字段
   build: 指定 Dockerfile 文件名,要指定Dockerfile文件需要在build标签的子级标签中使用dockerfile标签指定
   dockerfile: 构建镜像上下文路径
   context: 可以是 dockerfile 的路径,或者是指向 git 仓库的 url 地址
   image: 指定镜像
   command: 执行命令,覆盖默认命令
   container name: 指定容器名称,由于容器名称是唯一的,如果指定自定义名称,则无法 scale
   deploy: 指定部署和运行服务相关配置,只能在 Swarm 模式使用
   environment: 添加环境变量
   networks: 加入网络
   ports: 暴露容器端口,与 -p 相同,但端口不能低于 60
   volumes: 挂载宿主机路径或命令卷
   hostname: 容器主机名
   restart: 重启策略,默认 no,always,no-failure,unless-stoped
4.常用命令
   字段 描述
   build: 重新构建服务
   ps: 列出容器
   up: 创建和启动容器
   exec: 在容器里面执行命令
   scale: 指定一个服务容器启动数量
   top: 显示容器进程
   logs: 查看容器输出
   down: 删除容器、网络、数据卷和镜像
   stop/start/restart: 停止/启动/重启服务
5.docker-compose例子(编写) 命令使用参考例子:http://www.taodudu.cc/news/show-3833881.html?action=onClick
   参考链接:https://www.cnblogs.com/dreamer-fish/p/15317058.html
   #使用指定的docker-compose文件启动,如不指定则使用docker-compose.yml文件
   docker-compose -f docker-compose-n01.yml up -d # -d表示后台启动

   #查看docker-compose-n01.yml配置文件下运行的所有容器
   docker-compose -f docker-compose-n01.yml ps

   #查看配置文件下运行的容器服务web_nginx(yml文件中定义的service)
   docker-compose -f docker-compose-n01.yml ps web_nginx

   #让配置文件下容器服务web_nginx运行命令“hostname”
   docker-compose -f docker-compose-n01.yml run web_nginx hostname