docker-compose命令基础
Docker实战之docker-compose安装及命令配置概述 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中简单介绍了docker-compose的命令,通过docker-compose,执行--help可以查看帮助信息:
从上图看,该命令支持两个参数-f/-p。
-f参数用来指定Docker Compose的配置文件,这个参数可以使用多次——即可以一次指定多个配置文件。当多个配置文件有同名服务时,其只会解析执行后面的配置文件。
-p参数用来指定容器项目名称。Docker Compose启动容器时会默认把当前的目录名称设置为容器名称前缀,例如在Web文件夹下启动容器,配置文件中有两个服务分别是app和db,启动的容器名默认是web_db_1和web_app_1。如果想要修改web前缀,就可以使用-p这个参数。
详细看看各个命令的使用(均以官网提供案例示例):
1、构建服务镜像的build命令docker-compose build | Docker Documentation
上面的docker-compose.yml中再执行docker-compose build命令时会自动构建webapp、database、custom镜像,镜像名默认为文件夹名_镜像名。
需要注意的是在docker-compose.yml里面定义构建镜像时要把Dockerfile写好,因为Docker Compose实际上是通过docker-compose.yml读取信息解析后给 docker 客户端执行的。
默认情况下该命令会构建所有配置文件中的镜像,如果只想构建其中一个容器的镜像,则可以通过指定构建容器名称实现,例如:
docker-compose build webapp
2、检查配置语法的config命令docker-compose config | Docker Documentation
config命令用来检查docker-compose.yml文件是否有语法问题,如有则返回错误原因。
3、创建服务容器的create命令docker-compose create | Docker Documentation
通过官网可以看到这个命令已经被摒弃了,使用docker-compose up --no-start替代。
4、清理项目的down命令docker-compose down | Docker Documentation
down命令与后面的up命令相对,down命令可以停止容器并删除包括容器、网络、数据卷等内容。也就是只要是up命令创建的东西,使用down命令都可以删除。此外,如果网络、数据卷等资源正在被其他服务使用,down命令会跳过这些组件。同时也可以通过其提供-v/--rmi指定删除内容。
5、查看事件的events命令docker-compose events | Docker Documentation
该命令实际上就是对docker events的整合,通过该命令可以看到与配置文件定义的服务相关的事件。
6、进入服务的exec命令
7、杀死服务容器的kill命令
8、查看服务容器日志的logs命令
9、暂停服务容器的pause命令
10、查看服务容器端口状态的port命令
11、查看项目容器信息ps命令
12、拉取项目镜像的pull命令
13、推送项目镜像的push命令
14、重启服务容器的restart命令
15、删除项目容器的rm命令
16、执行一次性命令的run命令docker-compose run | Docker Documentation
docker-compose run 命令只能对一个服务的容器运行一条一次性的命令;其运行容器时创建的容器不属于项目中的服务,而是作为一个独立的容器。
配置文件:
使用run:docker-compose run web rails new . --force --database=postgresql --skip-bundle
执行这句命令之后,Compose会先根据Dockerfile构建镜像,然后使用该镜像执行新建的Rails项目的命令——也就是run后面的部分。
就运行过程看也构建了db,但是run后面没有db呀?!这是因为web依赖db,所以首先构建容器db——镜像postgres创建的容器名自动命名为当前目录_db_1(容器命名规则,可以通过参数配置修改)。
17、设置服务容器数量的scale命令
18、启动服务容器的start命令
19、停止服务容器的stop命令
20、取消暂停的unpause命令
21、启动项目的up命令
通过官网关于docker-compose的命令介绍,其配置文件及命令是不是类似makefile和make。
未完,待续……
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?