随笔 - 303  文章 - 0  评论 - 3  阅读 - 15万

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。

 

未完,待续……

 

posted on   池塘里洗澡的鸭子  阅读(1140)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
< 2025年3月 >
23 24 25 26 27 28 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 1 2 3 4 5

点击右上角即可分享
微信分享提示