Dcoker单机编排工具

docker编排工具:

yum install -y docker-compose

使用方式:
创建一个工作目录,在工作目录中创建一个docker-compose.yml文件!

docker-compose相关参数:

build
构建或重新构建服务。

服务一旦构建后,将会带上一个标记名,例如 web_db。

可以随时在项目目录下运行 docker-compose build 来重新构建服务。

help
获得一个命令的帮助。

kill
通过发送 SIGKILL 信号来强制停止服务容器。支持通过参数来指定发送的信号,例如

logs
查看服务的输出。

port
打印绑定的公共端口。

ps
列出所有容器。

pull
拉取服务镜像。

rm
删除停止的服务容器。

run
在一个服务上执行一个命令。

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

stop
停止一个已经运行的容器,但不删除它。通过 docker-compose start 可以再次启动这些容器。

up
构建,(重新)创建,启动,链接一个服务相关的容器。

链接的服务都将会启动,除非他们已经运行。

默认情况, docker-compose up 将会整合所有容器的输出,并且退出时,所有容器将会停止。

如果使用 docker-compose up -d ,将会在后台启动并运行所有的容器。

默认情况,如果该服务的容器已经存在,
docker-compose up 将会停止并尝试重新创建他们(保持使用volumes-from 挂载的卷),
以保证 docker-compose.yml 的修改生效。如果你不想容器被停止并重新创建,
可以使用 docker-compose up --no-recreate。如果需要的话,这样将会启动已经停止的容器。

docker-compose.yml文件中配置项:

build
指定 Dockerfile 所在文件夹的路径。 Compose 将会利用它自动构建这个镜像,然后使用这个镜像。
使用格式:
build: /path/to/build/dir

image
指定为镜像名称或镜像 ID。如果镜像在本地不存在,Compose 将会尝试拉去这个镜像。

command
覆盖容器启动后默认执行的命令
使用格式:
command: bundle exec thin -p 3000

links
链接到其它服务中的容器。使用服务名称(同时作为别名)或服务名称:服务别名 (SERVICE:ALIAS) 格式都可以。
使用的别名将会自动在服务容器中的 /etc/hosts 里创建
使用格式:
links:
 - db
 - db:database
 - redis
external_links
链接到 docker-compose.yml 外部的容器,甚至 并非 Compose 管理的容器。参数格式跟 links 类似。
使用格式:
external_links:
 - redis_1
 - project_db_1:mysql
 - project_db_1:postgresql

ports
暴露端口信息。
使用宿主:容器 (HOST:CONTAINER)格式或者仅仅指定容器的端口(宿主将会随机选择端口)都可以。
使用格式:
ports:
 - "3000"
 - "8000:8000"
 - "49100:22"
 - "127.0.0.1:8001:8001"

expose
暴露端口,但不映射到宿主机,只被连接的服务访问。
仅可以指定内部端口为参数
使用格式:
expose:
 - "3000"
 - "8000"

volumes
卷挂载路径设置。可以设置宿主机路径 (HOST:CONTAINER) 或加上访问模式 (HOST:CONTAINER:ro)
volumes_from
从另一个服务或容器挂载它的所有卷。
使用格式:
volumes:
 - /var/lib/mysql
 - cache/:/tmp/cache
 - ~/configs:/etc/configs/:ro

environment
设置环境变量。你可以使用数组或字典两种格式。
只给定名称的变量会自动获取它在 Compose 主机上的值,可以用来防止泄露不必要的数据。
使用格式:
environment:
  RACK_ENV: development
  SESSION_SECRET:

environment:
  - RACK_ENV=development
  - SESSION_SECRET

env_file
从文件中获取环境变量,可以为单独的文件路径或列表。
如果通过 docker-compose -f FILE 指定了模板文件,则 env_file 中路径会基于模板文件路径。
如果有变量名称与 environment 指令冲突,则以后者为准。
使用格式:
env_file: .env

env_file:
  - ./common.env
  - ./apps/web.env
  - /opt/secrets.env

extends
基于已有的服务进行扩展。例如我们已经有了一个 webapp 服务,模板文件为 common.yml
net
设置网络模式。使用和 docker client 的 --net 参数一样的值
使用格式:
net: "bridge"
net: "none"
net: "container:[name or id]"
net: "host"

pid
跟主机系统共享进程命名空间。打开该选项的容器可以相互通过进程 ID 来访问和操作。
使用格式:
pid: "host"

dns
配置 DNS 服务器。可以是一个值,也可以是一个列表。
使用格式:
dns: 8.8.8.8
dns:
  - 8.8.8.8
  - 9.9.9.9
dns_search
配置 DNS 搜索域。可以是一个值,也可以是一个列表。

实际案例:单机编排博客软件

首先说明:三个镜像都是自己做的!
所以直接使用即可!

[[email protected]:33:54docker-compose]#cat docker-compose.yml
#version: ‘3‘

#services:
   apache-web:
     image: 7b8b22661c10
     volumes:
       - /var/lib/docker/volumes/df3d545290f33921568de287532f8bed74551e7df113e054239a9e56a042e805/_data:/web/html
     ports:
       - "80:80"
     restart: always
   php-fpm:
     image: 172.20.23.31/phpapp1/centos-php-app1:v1
     ports:
       - "9000:9000"
     volumes:
       - /var/lib/docker/volumes/df3d545290f33921568de287532f8bed74551e7df113e054239a9e56a042e805/_data:/web/html
     restart: always
   server_db:
     image: 172.20.23.31/mysqlapp1/centos7.5-mysql-app1:v1
     ports:
       - "3306:3306"
     volumes:
       - /var/lib/docker/volumes/3daa3a70e12236e18f32454b3612a419de3070ae70ba41ac7fc2974a95b6eb05/_data:/mydata/data
     restart: always

原文地址:http://blog.51cto.com/13878078/2316626

时间: 2024-10-30 00:28:43

Dcoker单机编排工具的相关文章

使用容器编排工具docker swarm安装clickhouse多机集群

1.首先需要安装docker最新版,docker 目前自带swarm容器编排工具 2.选中一台机器作为master,执行命令sudo docker  swarm init [options] 3,再需要加入集群的集群上执行此命令 4.可以使用sudo docker node ls此命令来查询节点数 5编写docker-compose.yaml文件,目前我使用的是version 3版本,version2和3有区别,具体看官网介绍 贴一份完整的docker-compose.yaml供大家参考 ver

服务器太多了不好管?UCloud基于Terraform的资源编排工具详解

背景 随着用户在 UCloud 上资源用量的指数增长,传统 API/SDK 手动编写脚本的资源管理方式已经无法满足其需要.为此,UCloud 研发团队基于 Terraform 编写了一套自己的资源编排工具,帮助用户降低云上资源的管理成本,为其提供安全可靠.高度一致的产品使用体验,尽可能消除迁移上云时的风险. Terraform 代表了业界前沿的技术和标准,我们基于此,并配合 UCloud CLI 等工具,编写了新一代 UCloud 资源编排工具,进一步拓展 Terraform 的功能,实现基础设

Docker那些事儿之编排工具docker-compose

前面已经讲解过docker的一些基础使用,镜像创建的操作过程,如果大量容器需要同时部署,一个一个容器进行服务器上的部署,估计要疯掉,在使用上我们需要找到更好更便捷的使用方式,今天要讲解的容器编排工具docker-compose就是其中之一 简介 Compose是一个用于定义和运行多容器Docker应用程序的工具.使用Compose,您可以使用YAML文件来配置应用程序的服务.然后,使用单个命令,您可以从配置中创建并启动所有服务. docker-compose作为容器编排工具,专门用于处理多容器部

11:docker-compose(单机版的容器编排工具)

docker-compose(单机版的容器编排工具) 前面我们使用 Docker 的时候,定义 Dockerfile 文件,然后使用 docker build.docker run 等命令操作容器.然而微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,那么效率之低,维护量之大可想而知使用 Docker Compose 可以轻松.高效的管理容器,它是一个用于定义和运行多容器 Docker 的应用程序工具 #详细用法和解释http://www.ji

docker-compose (单机版的容器编排工具)

类似于ansible剧本 yml 格式 要使用这个编排工具,必须先安装 yum install -y docker-compose cd wordpress/ vi docker-compose.yml ############### version: '3' services: db: image: mysql:5.7 volumes: - /data/db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD

docker高级管理(docker-compose编排工具,consul架构)

本章知识点概括: Docker Compose容器编排构建自动发现的Docker服务架构实现容器服务自动加入Nginx集群 **Docker Compose容器编排功能** Docker compose的前身是Fig,它是一个定义及运行多个docker容器的工具 使用Docker Compose不再需要使用shell脚本来启动容器 Docker Compose非常适合组合是同多个容器进行开发的场景 可以执行多个容器的操作 **Docker Compose容器编排** YAML是一种标记语言很直观

几个微服务编排工具

uber/cadence 分布式.伸缩.高可靠的异步执行业务逻辑,工具比较丰富,同时提供了可视化UI https://github.com/uber/cadence netflix/conductor 来自netflix 的为微服务编排引擎,支持的功能很丰富,同时文档也比较全 参考架构 https://github.com/Netflix/conductor zeebe-io/zeebe 实际上是在工作流引擎的基础上衍生出来的,设计很灵活,不需要依赖后端的存储,支持复制.分片(借鉴了kafka)

saltstack——自动运维编排工具

简介 Salt是一个基础平台管理工具,基于 python 语言开发.SaltStack 采用 C/S模式,server端就是salt的master,client端就是minion,minion与master之间通过ZeroMQ消息队列通信.master监听4505和4506端口,4505为master和minion认证通信端口,4506为master用来发送命令或者接收minion的命令执行返回信息. saltstack 介绍: 1.轻量级管理工具,批量执行命令: 2.常用模板: pkg:包,有

Docker - 容器编排工具 compose 之安装

准备 首先,在使用和安装 docker compose之前,我们应该确保我们已经安装了 docker engine. 安装 官网上面有好多种安装方式,由于我们现在是在使用Docker, 个人感觉应该以 docker 的方式思考问题--我们将docker-compose以container的方式安装. 1. 检查本机的compose $ docker-compse --help 由于我们没有安装过,所以提示 “docker-compose” command not found 2. 以容器形式安装