【亚洲必赢app官方下载】Compose学习应用

归来目录

回去目录

docker~docker-compose的使用,dockercompose使用

重返目录

docker-compose是用来在Docker中定义和平运动作复杂应用的工具,比如在三个yum文件里定义多少个容器,只用一行命令就足以让一切就绪并运维。

使用docker
compose【亚洲必赢app官方下载】Compose学习应用。咱俩得以在Run的框框解决多数事实上难点,如:通过创办compose(基于YUML语法)文件,在那个文件上边描述应用的架构,如使用什么镜像、数据卷、互联网、绑定服务端口等等,然后再用一条命令就可以管理全数的劳务(网址1,服务1,监察和控制1)。

转发请注脚出处:Docker-Compose学习应用

docker-compose是用来在Docker中定义和平运动转复杂应用的工具,比如在三个yum文件里定义七个容器,只用1行命令就可以让全体就绪并运维。

docker-compose是用来在Docker中定义和周转复杂应用的工具,比如在二个yum文件里定义八个容器,只用1行命令就足以让壹切就绪并运行。

安装compose

# curl -L https://github.com/docker/compose/releases/download/1.1.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

#chmod +x /usr/local/bin/docker-compose

查阅是不是安装成功,看看版本

亚洲必赢app官方下载 1

亚洲必赢app官方下载 2docker

使用docker
compose咱俩能够在Run的规模消除繁多实际上难点,如:通过创造compose(基于YUML语法)文件,在这些文件上面描述应用的架构,如利用什么镜像、数据卷、网络、绑定服务端口等等,然后再用一条命令就能够管理全体的服务(网址1,服务1,监察和控制1)。

使用docker
compose大家可以在Run的规模消除广大其实难题,如:通过创办compose(基于YUML语法)文件,在这些文件下面描述应用的架构,如选取什么镜像、数据卷、互连网、绑定服务端口等等,然后再用一条命令就能够管理全部的劳务(网址1,服务1,监察和控制1)。

运行yml文件

vs20一七帮扶大家转移了Dockerfile和compose化解方案,大家能够把全部化解方案复制到linux上,然后去苏醒,编写翻译,发表,运维它们!

亚洲必赢app官方下载 3

VS帮大家调换的代码,达成了对化解方案的包复苏和宣布等功用

version: '2'

services:
  ci-build:
    image: microsoft/aspnetcore-build:1.0-1.1
    volumes:
      - .:/src
    working_dir: /src
    command: /bin/bash -c "dotnet restore ./testCore.sln && dotnet publish ./testCore.sln -c Release -o ./obj/Docker/publish"

作者们来运维一个docker-compose.yml文件

docker-compose up 

随后会运转大家的容器!

再次来到目录

 

回到目录
docker-compose是用来在Docker中定义和平运动行复杂应用的工具,比如在3个yum文件里定义多少个容…

Docker
Compose是二个用来定义和平运动行复杂应用的Docker工具。一个选取Docker容器的利用,日常由多少个容器组成。使用Docker
Compose不再供给使用shell脚本来运行容器。Compose
通过一个布署文件来管理多少个Docker容器,在布局文件中,全体的器皿通过services来定义,然后采纳docker-compose脚本来运维,结束和重启应用,和选取中的服务以及独具依赖服务的器皿,非常适合组合使用多少个容器进行开采的光景。

安装compose

# curl -L https://github.com/docker/compose/releases/download/1.1.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

#chmod +x /usr/local/bin/docker-compose

查看是还是不是安装成功,看看版本

亚洲必赢app官方下载 4

安装compose

# curl -L https://github.com/docker/compose/releases/download/1.1.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

#chmod +x /usr/local/bin/docker-compose

翻看是不是安装成功,看看版本

亚洲必赢app官方下载 5

法定文书档案 – Docker Compose

运行yml文件

vs20一7支援大家转移了Dockerfile和compose化解方案,大家能够把全部化解方案复制到linux上,然后去恢复,编写翻译,发布,运转它们!

亚洲必赢app官方下载 6

VS帮大家转换的代码,完成了对缓解方案的包恢复生机和揭橥等功效

version: '2'

services:
  ci-build:
    image: microsoft/aspnetcore-build:1.0-1.1
    volumes:
      - .:/src
    working_dir: /src
    command: /bin/bash -c "dotnet restore ./testCore.sln && dotnet publish ./testCore.sln -c Release -o ./obj/Docker/publish"

小编们来运作1个docker-compose.yml文件

cd 你的消除方案目录 

docker-compose kill
#删除正在运作的服务

docker-compose rm #删除服务的镜像

docker-compose build #生成新的镜像

docker-compose up #运转容器

亚洲必赢app官方下载 7

 

 

而后会运营大家的器皿!

回到目录

 

运行yml文件

vs20壹七帮助大家转移了Dockerfile和compose化解方案,大家能够把全路消除方案复制到linux上,然后去苏醒,编写翻译,发布,运转它们!

亚洲必赢app官方下载 8

VS帮大家转换的代码,完成了对化解方案的包恢复生机和揭发等作用

version: '2'

services:
  ci-build:
    image: microsoft/aspnetcore-build:1.0-1.1
    volumes:
      - .:/src
    working_dir: /src
    command: /bin/bash -c "dotnet restore ./testCore.sln && dotnet publish ./testCore.sln -c Release -o ./obj/Docker/publish"

我们来运转贰个docker-compose.yml文件

cd 你的化解方案目录 

docker-compose kill
#删除正在运营的劳动

docker-compose rm #删除服务的镜像

docker-compose build #生成新的镜像

docker-compose up #运营容器

亚洲必赢app官方下载 9

 

 

从此会运行我们的器皿!

重回目录

 

docker-compose安装能够参考官方文书档案:Install Docker Compose

Docker Desktop for MacDocker Toolbox 已购并了docker-compose,
所以只要安装了docker是不须要安装的,直接就能够用。

在Linux系统中,能够由此源码来设置docker-compose

  1. 从github下载最新版docker-compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$-$" -o /usr/local/bin/docker-compose
  1. 给docker-compose赋予可实行权限

sudo chmod +x /usr/local/bin/docker-compose

最后能够透过以下命令来讲明是或不是安装成功:

docker-compose --version

docker-compose 文件命名以.yml.yaml为后缀。

上面先欣赏一下法定文书档案中的一个示范:

version: "3"services: redis: image: redis:alpine ports: - "6379" networks: - frontend deploy: replicas: 2 update_config: parallelism: 2 delay: 10s restart_policy: condition: on-failure db: image: postgres:9.4 volumes: - db-data:/var/lib/postgresql/data networks: - backend deploy: placement: constraints: [node.role == manager] vote: image: dockersamples/examplevotingapp_vote:before ports: - "5000:80" networks: - frontend depends_on: - redis deploy: replicas: 2 update_config: parallelism: 2 restart_policy: condition: on-failure result: image: dockersamples/examplevotingapp_result:before ports: - "5001:80" networks: - backend depends_on: - db deploy: replicas: 1 update_config: parallelism: 2 delay: 10s restart_policy: condition: on-failure worker: image: dockersamples/examplevotingapp_worker networks: - frontend - backend deploy: mode: replicated replicas: 1 labels: [APP=VOTING] restart_policy: condition: on-failure delay: 10s max_attempts: 3 window: 120s placement: constraints: [node.role == manager] visualizer: image: dockersamples/visualizer:stable ports: - "8080:8080" stop_grace_period: 1m30s volumes: - "/var/run/docker.sock:/var/run/docker.sock" deploy: placement: constraints: [node.role == manager]networks: frontend: backend:volumes: db-data:

从上述示范看,整个文书档案分为肆部分,version, services, networks,
volumes, 其中services中剧情最长,下边将逐条做个简单介绍

version是compose的版本,下表是compose版本与docker版本对照表:

Compose file format Docker Engine release
3.7 18.06.0+
3.6 18.02.0+
3.5 17.12.0+
3.4 17.09.0+
3.3 17.06.0+
3.2 17.04.0+
3.1 1.13.1+
3.0 1.13.0+
2.4 17.12.0+
2.3 17.06.0+
2.2 1.13.0+
2.1 1.12.0+
2.0 1.10.0+
1.0 1.9.1.+

services是用来布置定义每种容器运转参数,各种service正是三个容器,services下一级配备正是服务名称,例如地点示例中的redis,
db等。

3.2.1. image

image是点名服务的镜像名称或镜像 ID。如果镜像在地面不设有,Compose
将会尝试拉取这一个镜像。

比如下边那些格式都是能够的:

image: redisimage: ubuntu:14.04image: tutum/influxdbimage: example-registry.com:4000/postgresqlimage: a4bc65fd

3.2.2. build

劳动除此而外能够依据钦命的镜像,还足以根据一份 Dockerfile,在使用 up
运转之时实行创设职分,这么些营造标签正是 build,它能够钦赐 Dockerfile
所在文件夹的门径。Compose
将会接纳它自动创设那个镜像,然后采用那个镜像运维服务容器。

build: /path/to/build/dir

也能够是相对路线,只要上下文明确就能够读取到 Dockerfile。

build: ./dir

设定上下文根目录,然后以该目录为准钦命 Dockerfile。

build: context: ../ dockerfile: path/of/Dockerfile

只顾 build 都以3个目录,若是你要钦赐 Dockerfile 文件须要在 build
标签的子级标签中应用 dockerfile
标签钦赐,如上边的例证。假设您而且钦赐了 image 和 build 三个标签,那么
Compose 会营造镜像并且把镜像命名字为 image 前面包车型地铁极度名字。

既是能够在 docker-compose.yml 中定义创设职责,那么早晚少不了 arg
这么些标签,就好像 Dockerfile 中的 A路虎极光G
指令,它能够在营造进程中内定环境变量,可是在创设成功后撤回,在
docker-compose.yml 文件中也协助这样的写法:

build: context: . args: buildno: 1 password: secret

上边那种写法也是帮忙的,一般的话下边包车型的士写法更符合阅读。

build: context: . args: - buildno=1 - password=secret

与 ENV 分化的是,A君越G 是允许空值的。例如:

args: - buildno - password

那样创设进度能够向它们赋值。

小心:YAML 的布尔值(true, false, yes, no, on,
off)必须求采纳引号引起来(单引号、双引号均可),不然会当成字符串解析。

3.2.3. command

使用 command 能够覆盖容器运维后默许推行的命令。

command: bundle exec thin -p 3000

也足以写成类似 Dockerfile 中的格式:

command: [bundle, exec, thin, -p, 3000]

3.2.4. container_name

Compose
的容器名称格式是:<项目名称><服务名称><序号>尽管能够自定义项目名称、服务名称,可是一旦你想完全调节容器的命名,能够采纳这么些标签钦命:

container_name: app

诸如此类容器的名字就钦点为 app 了。

3.2.5. depends_on

在运用 Compose
时,最大的益处正是少打运维命令,不过一般项目容器运营的各类是有供给的,倘若一贯从上到下运维容器,必然会因为容器重视难点而运维战败。例如在没运行数据水库蓄水容量器的时候运营了运用容器,那时候应用容器会因为找不到数据库而退出,为了幸免那种状态大家供给加入三个标签,正是depends_on,这些标签消除了容器的信赖、运营程序的主题素材。例如上边容器会先运转redis 和 db 五个劳务,最后才起步 web 服务:

version: '2'services: web: build: . depends_on: - db - redis redis: image: redis db: image: postgres

只顾的是,暗许景况下接纳 docker-compose up web 那样的艺术运营 web
服务时,也会运行 redis 和 db 多少个劳务,因为在布署文件中定义了借助关系。

3.2.6.dns

和 –dns 参数一样用途,格式如下:

dns: 8.8.8.8

也得以是3个列表:

dns: - 8.8.8.8 - 9.9.9.9

此外 dns_search 的配置也接近:

dns_search: example.comdns_search: - dc1.example.com - dc2.example.com

3.2.7. environment

和 arg
有几分类似,那一个标签的功力是设置镜像变量,它能够保留变量到镜像里面,也等于说运转的器皿也会蕴藏那么些变量设置,这是与
arg 最大的两样。一般 arg 标签的变量仅用在创设进程中。而 environment 和
Dockerfile 中的 ENV 指令一样会把变量一直保存在镜像、容器中,类似 docker
run -e 的意义。

environment: RACK_ENV: development SHOW: 'true' SESSION_SECRET: environment: - RACK_ENV=development - SHOW=true - SESSION_SECRET

3.2.8. extra_hosts

增多主机名的标签,就是往/etc/hosts文件中增加1些笔录,与Docker
client的–add-host类似:

extra_hosts: - "somehost:162.242.195.82" - "otherhost:50.31.209.229"

开发银行今后查看容器内部hosts:

162.242.195.82 somehost50.31.209.229 otherhost

3.2.9. labels

向容器添新币数据,和Dockerfile的LABEL指令二个意思,格式如下:

labels: com.example.description: "Accounting webapp" com.example.department: "Finance" com.example.label-with-empty-value: ""labels: - "com.example.description=Accounting webapp" - "com.example.department=Finance" - "com.example.label-with-empty-value"

3.2.10 links

还记得上边的depends_on吧,那些标签化解的是运营顺序难点,这些标签化解的是容器连接难题,与Docker
client的–link同样效果,会连接到别的服务中的容器。格式如下:

links: - db - db:database - redis

利用的别老马会活动在服务容器中的/etc/hosts里创制。例如:

172.12.2.186 db172.12.2.186 database172.12.2.187 redis

对应的环境变量也将被成立。

3.2.11 ports

照耀端口的标签。使用HOST:CONTAINELAND格式大概只是钦赐容器的端口,宿主机会随机映射端口。

ports: - "3000" - "8000:8000" - "49100:22" - "127.0.0.1:8001:8001"

瞩目:当使用HOST:CONTAINE奥迪Q5格式来映射端口时,借使你利用的容器端口小于60您或者会取得错误得结果,因为YAML将会解析xx:yy那种数字格式为60进制。所以建议利用字符串格式。

3.2.12. volumes

挂载五个索引也许1个已存在的数额卷容器,能够直接采纳 [HOST:CONTAINER]
那样的格式,只怕利用 [HOST:CONTAINER:ro]
那样的格式,后者对于容器来讲,数据卷是只读的,那样能够有效保养宿主机的文件系统。Compose的多寡卷钦赐路线能够是相对路径,使用
. 恐怕 .. 来钦赐相对目录。数据卷的格式能够是底下三种形式:

volumes: // 只是指定一个路径,Docker 会自动在创建一个数据卷(这个路径是容器内部的)。 - /var/lib/mysql // 使用绝对路径挂载数据卷 - /opt/data:/var/lib/mysql // 以 Compose 配置文件为中心的相对路径作为数据卷挂载到容器。 - ./cache:/tmp/cache // 使用用户的相对路径(~/ 表示的目录是 /home/<用户目录>/ 或者 /root/)。 - ~/configs:/etc/configs/:ro // 已经存在的命名的数据卷。 - datavolume:/var/lib/mysql

若果你不利用宿主机的路子,你可以钦点二个volume_driver。

volume_driver: mydriver

3.2.13. networks

到场钦命网络,格式如下:

services: some-service: networks: - some-network - other-network

至于那几个标签还有叁个专门的子标签aliases,那是三个用来设置服务小名的价签,例如:

services: some-service: networks: some-network: aliases: - alias1 - alias3 other-network: aliases: - alias2

一律的劳动能够在区别的网络有两样的别称。

3.2.14. network_mode

网络格局,与Docker
client的–net参数近似,只是相对多了一个service:[service name]
的格式。例如:

network_mode: "bridge"network_mode: "host"network_mode: "none"network_mode: "service:[service name]"network_mode: "container:[container name/id]"

能够钦命使用劳务或许容器的网络。

docker-compose常用命令能够透过以下命令大概看一下:

docker-compose --help

结果如下:

Define and run multi-container applications with Docker.Usage: docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...] docker-compose -h|--helpOptions: -f, --file FILE Specify an alternate compose file (default: docker-compose.yml) -p, --project-name NAME Specify an alternate project name (default: directory name) --verbose Show more output --log-level LEVEL Set log level (DEBUG, INFO, WARNING, ERROR, CRITICAL) --no-ansi Do not print ANSI control characters -v, --version Print version and exit -H, --host HOST Daemon socket to connect to --tls Use TLS; implied by --tlsverify --tlscacert CA_PATH Trust certs signed only by this CA --tlscert CLIENT_CERT_PATH Path to TLS certificate file --tlskey TLS_KEY_PATH Path to TLS key file --tlsverify Use TLS and verify the remote --skip-hostname-check Don't check the daemon's hostname against the name specified in the client certificate --project-directory PATH Specify an alternate working directory (default: the path of the Compose file) --compatibility If set, Compose will attempt to convert deploy keys in v3 files to their non-Swarm equivalentCommands: build Build or rebuild services bundle Generate a Docker bundle from the Compose file config Validate and view the Compose file create Create services down Stop and remove containers, networks, images, and volumes events Receive real time events from containers exec Execute a command in a running container help Get help on a command images List images kill Kill containers logs View output from containers pause Pause services port Print the public port for a port binding ps List containers pull Pull service images push Push service images restart Restart services rm Remove stopped containers run Run a one-off command scale Set number of containers for a service start Start services stop Stop services top Display the running processes unpause Unpause services up Create and start containers version Show the Docker-Compose version information

上面会指向1些比较常用的下令举行简单介绍

当修改dockerfile只怕docker-compose时,运营docker-compose build
重建镜像。 生成镜像后,可利用docker-compose up运营

来得全数容器信息,暗中同意展现name、command、state、ports。

强制截止有个别正在运作的劳务

打字与印刷服务日志

语法:

logs [options] [SERVICE...]

参数:

--no-color Produce monochrome output.-f, --follow Follow log output-t, --timestamps Show timestamps--tail="all" Number of lines to show from the end of the logs for each container.

塑造,创造,运维,链接2个服务相关的容器。链接的服务都将会运行,除非他们一度运营。暗许情状,
docker-compose up
将会结合全体容器的输出,并且脱离时,全数容器将会终止。假诺应用
docker-compose up -d ,将会在后台运转并运转具备的器皿。

私下认可景况,假设该服务的容器已经存在, docker-compose up
将会停下并尝试再度成立他们(保持利用 volumes-from 挂载的卷),以保险docker-compose.yml的修改生效。要是你不想容器被终止一碗水端平复创建,能够采用
docker-compose up --no-recreate。借使供给的话,那样将会运行已经终止的容器。

亚洲必赢app官方下载 ,语法:

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

参数:

 -d 后台运行,输出容器的名字. Incompatible with --abort-on-container-exit. --no-color 单色输出. --no-deps 不启动link服务. --force-recreate 强制重新创建compose服务,即使没有任何改变。重新创建后启动容器 Incompatible with --no-recreate. --no-recreate 如果容器已经存在,不重新创建. Incompatible with --force-recreate. --no-build 不创建重启,即使镜像不存在. --build 重新创建镜像,然后生成容器. --abort-on-container-exit 任何容器停止,自动停止所有容器. Incompatible with -d. -t, --timeout TIMEOUT 超时时间. (default: 10) --remove-orphans 移除compose文件中未定义服务的容器

为服务成立容器.只是只是的create,还索要动用start运转compose

语法:

create [options] [SERVICE...]

参数

 --force-recreate 重新创建容器,即使他的配置和镜像没有改变,不兼容--no-recreate参数 --no-recreate 如果容器已经存在,不需要重新创建. 不兼容--force-recreate参数 --no-build 不创建镜像,即使缺失. --build 创建容器前,生成镜像

甘休和删除容器、网络、卷、镜像,那么些情节是透过docker-compose up命令创建的.
暗中认可值删除容器互连网,能够通过点名 rmi volumes参数删除镜像和卷。

语法:

down [options]

参数:

--rmi type 删除镜像,类型必须是: 'all': 删除compose文件中定义的所以镜像. 'local': 删除镜像名为空的镜像-v, --volumes 删除卷 attached to containers.--remove-orphans Remove containers for services not defined in the Compose file

开发银行贰个业已存在的劳动容器。

悬停三个1度运转的容器,但不删除它。通过
docker-compose start能够重复运行那一个器皿。

停顿容器服务,docker-compose pause
暂停全数服务。docker-compose pause web,暂停web服务的器皿。

光复容器服务,docker-compose unpause
恢复生机全部服务,docker-compose unpause web,复苏web服务的容器。

重启docker-compose.yml中定义的享有的已甘休的和正在运营的劳务。

除去已经终止的容器,倘若服务在运作,要求先docker-compose stop
结束容器,暗中同意意况下,已挂载的volume中的数据不会被删去,能够运用docker volume ls翻开全体的volume情形。全数在容器中绝非在volume中的数据将被删除。

在三个劳动上试行八个命令.

语法:

run [options] [-v VOLUME...] [-p PORT...] [-e KEY=VAL...] [-l KEY=VALUE...] SERVICE [COMMAND] [ARGS...]

参数:

-d 后台运行,输出容器名.-e KEY=VAL 设置环境变量参数,可以使用多次-u, --user="" 指定运行的用户--no-deps 不启动link服务,只启动run的服务.--rm 运行后删除容器,后台运行模式除外.-p, --publish=[] 开放端口--service-ports compose文件中配置什么端口,就映射什么端口.-T 禁用TTY.-w, --workdir="" 设置工作目录

例如:

docker-compose run ubuntu ping docker.com

安装同二个劳务运作的容器个数。通过 service=num 的参数来安装数量。

合法文书档案 – Docker Composedocker-compose.yml
配置文件编写制定详解docker-compose:基本语法docker-compose命令详解

转发请申明出处:Docker-Compose学习应用

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图