容器编排及环境部署

Dockerfile和docker-compose.yml的区别

Dockerfile

Dockerfile是一个按一定规则编写的包含多行命令的文件,使用Dockerfile可以快速的构建一个定制的镜像。

docker-compose.yml

使用docker-compose.yaml文件,按照特定的语法语句编写指令,管理多个镜像的部署和端口等操作,实现真证的快速部署。在不同服务器上部署时,只需要一个docker-compose.yaml文件,便能完成应用的部署操作。总之,Docker Compose是用来管理多个容器的。

安装docker-compose

1
2
3
4
5
curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose     //下载docker-compose

chmod +x /usr/local/bin/docker-compose //赋予执行权限

docker-compose -version //查看版本信息&是否安装成功

Compose模板文件

Docker-Compose标准模板文件应该包含version、services、networks 三大部分,最关键的是services和networks两个部分。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
version: '2'
services:
web:
image: dockercloud/hello-world
ports:
- 8080
networks:
- front-tier
- back-tier

redis:
image: redis
links:
- web
networks:
- back-tier

lb:
image: dockercloud/haproxy
ports:
- 80:80
links:
- web
networks:
- front-tier
- back-tier
volumes:
- /var/run/docker.sock:/var/run/docker.sock

networks:
front-tier:
driver: bridge
back-tier:
driver: bridge

下面解释几个常用的命令

version

Compose目前有三个版本分别为Version 1,Version 2,Version 3,Compose区分Version 1和Version 2(Compose 1.6.0+,Docker Engine 1.10.0+)。Version 2支持更多的指令。Version 1将来会被弃用。

image

image是指定服务的镜像名称或镜像ID。如果镜像在本地不存在,Compose将会尝试拉取镜像。

build

服务除了可以基于指定的镜像,还可以基于一份Dockerfile,在使用up启动时执行构建任务,构建标签是build,可以指定Dockerfile所在文件夹的路径。

比如当前目录下有Dockerfile,docker-compose.yml 文件

就会在当前目录下寻找Dockerfile文件进行自动构建镜像,然后使用镜像启动服务容器。

ports

ports用于映射端口的标签。

volumes

数据卷,在它下面可以定义的数据卷(名字等等),然后挂载到不同的服务下去使用

networks

应用的网络,在它下面可以定义应用的名字、使用的网络类型等等

Compose常用命令

docker-compose up:启动服务,如果在后台启动需要参数-d
docker-compose stop [name]:停止服务
docker-compose start [name]:启动服务
docker-compose rm [name]:删除服务,需要停止服务,否则使用-f参数,与docker rm命令类似
docker-compose down:停止并删除容器,网络,镜像和数据卷
docker-compose logs -f [name]:查看具体服务的日志


容器编排及环境部署
https://www.dr0n.top/posts/145ae3c2/
作者
dr0n
发布于
2021年7月6日
更新于
2024年2月29日
许可协议