上一节中,在写好了Dockerfile之后,我们使用了两个命令:即docker build和docker run来构建镜像和运行基于该镜像的容器,这些命令在开发过程中是需要经常需要的,而Docker Compose就可以定义上面的操作;当然,Docker Compose的功能不止如此,它可以用YAML文件定义一组要启动的容器,以及容器运行时的属性。除此之外,它也可以指定一些运行时的属性来和其他容器产生交互。
1.安装
由于目前的操作主要使用的是python,所以这里推荐使用pip进行安装Docker Compose。
pip install docker-compose
安装好之后可以通过--version来测试是否可以正常工作。
docker-compose --version
![]()
2.docker-compose.yml文件的编写
docker-compose.yml可以包含build和run的一些命令。
version: "2.2"
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
首先是version,不同的版本对应的规则也是有所不同,这里使用的是2.2;注意这里的缩进不能使用[tab]。
对于web服务,它指定了一些运行时的参数。里面目前主要封装了之前的两个命令,一个是build命令,另一个则是run命令所需的。比如之前的build为
docker build -t sky/toturial .
这里生成的镜像没有指定名称,它会以当前目录的Dockerfile进行构建;然后则是docker run
docker run -d -p 8000:8000 --name slx -v $PWD:/code sky/tutorial
3.docker-compose.yml的运行
这里简单说明几个比较常用的命令。
docker-compose up
首先它会尝试构建镜像,然后接着以前台的方式运行该容器。可以使用Ctrl+C停止Compose运行。
docker-compose up -d
加上-d选项则可以以守护进程的方式运行compose(类似于docker run -d)。
docker-compose ps
现在,在宿主机上以守护进程的方式运行了受Docker Compose管理的服务,使用docker-compose ps命令(类似于docker ps)可以查看这些服务的运行状态。

docker-compose logs
使用该命令可以进一步查看服务的日志文件:

docker-compose stop
这个命令可以停止正在运行的服务。
docker-compose rm
可以删除这些服务。
4.总结
当然,docker-compose的功能可不止于此,通过它可以比较简单的构建一个需要多个Docker容器的应用程序,而目前的这个例子,连Compose的最表层能力都没怎么展现出来。
参考文献 《第一本Docker书》
本文介绍如何使用DockerCompose简化Docker容器的管理和部署过程。通过编写YAML文件,可以定义和运行多容器应用,包括镜像构建、容器运行、网络配置等。文章详细解释了docker-compose.yml文件的编写和常用命令的使用。
1664

被折叠的 条评论
为什么被折叠?



