欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

DockerCompose部署应用

时间:2023-06-28
Docker Compose 部署应用 一、简介

Docker Compose 的前身是Fig。Fig是一个由Orchard公司开发的强有力的工具。Fig是基于Docker的Python工具,允许用户基于一个YAML文件定义多容器应用,从而可以使用fig命令行工具进行应用的部署。Fig可以对应用的全生命周期进行管理。

2014年,Docker公司收购了Orchard公司,将Fig更名为Docker Compose。

部署和管理多个服务是比较困难的,而这就是Docker Compose需要解决的问题

Docker Compose 并不是通过脚本和各种冗长的docker命令来将应用组件组织起来,而是通过一个声明式的配置文件描述整个应用,从而使用一条命令完成部署。

二、安装Docker Compose

在linux系统安装时分为两步。首先使用curl命令下载二进制文件,然后使用chmod命令将其置为可运行。

Docker Compose 在linux中使用,同样需要先安装Docker引擎。

下面是下载Docker Compose到/usr/local/bin目录下,版本是1.29.2

[root@localhost bin]# sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed100 664 100 664 0 0 587 0 0:00:01 0:00:01 --:--:-- 587100 12.1M 100 12.1M 0 0 168k 0 0:01:13 0:01:13 --:--:-- 120k

下载docker-compose二进制文件之后,使用如下命令使其可执行。

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

检查安装情况以及版本

[root@localhost bin]# docker-compose --versiondocker-compose version 1.29.2, build 5becea4c

现在就可以在Linux中使用Docker Compose了。

还有一个通过pip安装的Docker Compose的Python包

pip install docker-compose

不做演示

三、Compose 文件

Docker Compose 使用YAML文件来定义多服务的应用。YAML是JSON的一个子集,因此也可以使用JSON。

Docker Compose 默认使用文件名 docker-compose.yml, 当然用户也可以使用-f参数指定具体的文件。

version: "3.9" services: web: build: . command: python3 app.py ports: - target: 5000 published: 5000 networks: - counter-net volumes: - type: volume source: counter-vol target: /code redis: image: "redis:alpine" networks: counter-net: networks: counter-net: volumes: counter-vol:

关键字段解释:

version 位于文件第一行,必须存在,它定义了Compose文件格式(主要是API)的版本。

services 用于定义不同的应用服务。Docker Compose 会将每个服务部署在各自的容器中。

networks 用于指引Docker创建新的网络。默认情况下,Docker Compose 会创建bridge网络。这是一种单主机网络,只能实现同一主机上容器的连接。

volumes 用于指引Docker来创建新的卷。

下面是services服务中的指令解释:

build: 、指定Docker基于当前目录(.)下Dockerfile中定义的指令来构建一个新的镜像。command: python app.py 指定Docker在容器中执行名为app.py的Python脚本作为主程序。ports: 指定Docker将容器内(-target)的5000端口映射到主机(published)的5000端口。networks: 使得Docker可以将服务连接到指定的网络上。volumes:指定Docker将counter-vol 卷(source:)挂载到容器内的 /code (target:)。

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。