频道栏目
首页 > 网络 > 其他 > 正文

Dcoker单机编排工具

2018-11-16 09:10:51           
收藏   我要投稿

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 搜索域。可以是一个值,也可以是一个列表。

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

首先说明:三个镜像都是自己做的!

所以直接使用即可!

[root@www22: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

上一篇:如何解决Win10启动和登陆界面语言中英文混合显示?
下一篇:shell编程俄罗斯方块
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站