docker-compose实现容器编排

介绍


compose也是docker官方的一个开源项目, (https://github.com/docker/compose),通过配置YMAL文件,可以实现对同一宿主机上的的多个容器进行统一管理

Docker-Compose的概念有:工程(project),服务(service)以及容器(container)。

Docker-Compose运行目录下的所有文件(docker-compose.yml,extends文件或环境变量文件等)组成一个工程,若无特殊指定工程名即为当前目录名。

一个工程当中可包含多个服务,每个服务中定义了容器运行的镜像,参数,依赖。对于一个服务可以运行多个容器实例

注意:服务即对应了docker-compose.yml中定义,通过该定义可生成多个容器,但服务本身并非存在的实体

 

安装


# 下载
wget https://github.com/docker/compose/releases/download/1.25.0/docker-compose-Linux-x86_64

# 改名
mv docker-compose-Linux-x86_64  docker-compose

# 赋予该文件可执行权限
chmod +x docker-compose

如果需要在任何位置都可以使用docker-compose, 可以将该文件移动到/usr/local/bin$PATH环境变量所包含的目录下。

 

常用命令


docker-compose 基本命令格式如下

 docker-compose [参数...] [options] [COMMAND] [ARGS...]

以下是有关参数说明:

-f,–file FILE指定使用的Compose模板文件,默认为docker-compose.yml,可以多次指定。

-p,–project-name NAME指定项目名称,默认将使用所在目录名称作为项目名。

-x-network-driver 使用Docker的可拔插网络后端特性(需要Docker 1.9 及以后版本)

-x-network-driver DRIVER指定网络后端的驱动,默认为bridge(需要Docker 1.9 及以后版本)

-verbose输出更多调试信息

-v,–version打印版本并退出

 
以下有常见命令:

build 构建项目中的服务容器

help 获得一个命令的帮助

kill 通过发送SIGKILL信号来强制停止服务容器

config 验证和查看compose文件配置

create 为服务创建容器。只是单纯的create,还需要使用start启动compose

down 停止并删除容器,网络,镜像和数据卷

exec 在运行的容器中执行一个命令

logs 查看服务容器的输出

pause 暂停一个服务容器

port 打印某个容器端口所映射的公共端口

ps 列出项目中目前的所有容器

pull 拉取服务依赖的镜像

push 推送服务镜像

restart 重启项目中的服务

rm 删除所有(停止状态的)服务容器

run 在指定服务上执行一个命令

scale 设置指定服务运行的容器个数

start 启动已经存在的服务容器

stop 停止已经处于运行状态的容器,但不删除它

top 显示运行的进程

unpause 恢复处于暂停状态中的服务

up 自动完成包括构建镜像、创建服务、启动服务并关闭关联服务相关容器的一些列操作

version 打印版本信息

 

下面将列举其中用的比较多的:

up
docker-compose up [options] [--scale SERVICE=NUM...] [SERVICE...]

对于某个项目,该命令完成了构建镜像,根据服务创建服务容器,并关联服务相关容器的系列操作。

加上-d代表后台运行

ps

列出项目中目前的所有容器

 docker-compose ps [options] [SERVICE...]

stop

停止项目中处于运行状态的容器

docker-compose stop [options] [SERVICE...]

down

停止项目中运行的容器并删除,加上-v表示删除已经在compose文件中定义的和匿名的附在容器上的数据卷

docker-compose down [options]

rm

删除所有服务容器,加上-v删除容器所挂载的数据卷

docker-compose rm [options] [SERVICE...]

run

在指定服务上执行一个命令

格式:docker-compose run [options] [-v VOLUME...] [-p PORT...] [-e KEY=VAL...] SERVICE
[COMMAND] [ARGS...]

样例:docker-compose run ubuntu ping www.baidu.com

config

验证并查看compose文件配置。

docker-compose config [options]

加上-q代表只验证配置,不输出。 当配置正确时,不输出任何内容,当文件配置错误,输出错误信息

 

docker-compose.yml配置


常见配置

参考

build 指定服务镜像Dockerfile所在路径
cap_add,cap_drop 指定容器的内核能力(capacity)分配
command 覆盖容器启动后默认执行的命令
cgroup_parent 指定父cgroup组,意味着将基础该组的资源限制
container_name 指定容器名称。默认将会使用'项目名称_服务名称_序号'这样的格式
devices 指定设置映射关系
dns 自定义DNS服务器。可以是一个值,也可以是一个列表
dns_search 配置DNS搜索域。可以是一个值,也可以是一个列表
dockerfile 指定额外编译镜像的Dockerfile文件,可以通过该指令来指定
env_file 从文件中获取环境变量,可以为单独的文件路径或列表
environment 设置环境变量,可以使用数组或字典两种格式
expose 暴露端口
external_links 链接到docker-compose.yml外部的容器,甚至可以是非Compose管理的外部容器
extra_hosts 指定额外的host名称映射信息
image 指定为镜像名称或镜像ID。如果镜像在本地不存在,Compose将会尝试拉取这个镜像
labels 指定服务镜像Dockerfile所在路径
links 链接到其他服务中的容器
log_driver 指定日志驱动类型,类似于Docker中的–log-driver参数。目前支持三种日志驱动类型:log_driver:“json-file”、log_driver:“syslog”、log_driver:“none”
log_opt 日志驱动的相关参数
net 设置网络模式。参数类似于docker clinet的–net参数一样
pid 跟主机系统共享进程命名空间。打开该选项的容器之间,以及容器和宿主机系统之间可以通过进程ID来相互访问和操作
ports 暴露端口信息
security_opt 指定容器模板标签(label)机制的默认属性(如用户、角色、类型、级别等)
ulimits 指定容器的ulimits限制值
volumes 数据卷所挂载路径设置。可以设置宿主机路径(HOST:CONTAINER)或加上访问模式(HOST:CONTAINER:ro)

 
示例:

version: '3'
services:
  my_redis:
    image: redis
    ports:
      - "6379:6379"
    container_name: "redis"
    networks: 
      - dev
  my_mysql:
    image: centos/mysql-57-centos7
    environment:
      MYSQL_ROOT_PASSWORD: "root"
    ports: 
      - "3306:3306"
    container_name: "mysql"
    networks: 
      - dev
  my_app:
    image: tomcat
    ports: 
      - "9090:8080"
    container_name: "web"
    networks: 
      - dev
      - pro
networks:
  dev:
    driver: bridge
  pro:
    driver: bridge
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值