Compose 是用于定义和运行多容器 Docker 应用程序的工具,这篇文章主要给大家介绍了关于docker-compose常见参数命令的相关资料
中文文档:https://yeasy.gitbook.io/docker_practice/compose
docker-compose模板文件
模板文件是使用 Compose 的核心,涉及到的指令关键字也比较多。下面主要列出几个常见&重要的模板指令,其他指令大家可以自行百度。
默认的模板文件名称为 docker-compose.yml,格式为 YAML 格式
1. environment
设置环境变量,主要是用来配置容器中程序所需要配置的一些参数。你可以使用数组或字典两种格式。
也可以使用数组格式:
2. volumes
数据卷所挂载路径设置,挂载数据卷的默认权限是读写(rw)。
你可以在主机上挂载绝对路径,或者挂载相对路径,相对路径是相对于当前正在使用的compose配置文件的目录进行扩展。 相对路径应始终以 . 或者 … 开始。
你还可以使用别名的方式挂载容器数据卷(可以跨多个服务并重用挂载卷,当然使挂载绝对路径或相对路径也可以重用挂载卷),但要注意一点,使用别名的方式挂载需要在顶级volumes关键字中声明挂在卷,否则启动会报错。
3. build
指定 Dockerfile 所在文件夹的路径(可以是绝对路径,或者相对 docker-compose.yml 文件的路径)。 Compose 将会利用它自动构建这个镜像,然后使用这个镜像。
你也可以使用 context 指令指定 Dockerfile 所在文件夹的路径,使用 dockerfile 指令指定 Dockerfile 文件名,可以使用 args 指令指定构建镜像时往Dockerfile中传入的变量。
4. depends_on
解决容器的依赖、启动先后的问题。以下例子中会先启动 redis db 再启动 web。
注意:web 服务不会等待 redis、db 完全启动之后才启动。
5. env_file
从文件中获取环境变量,可以为单独的文件路径或列表。
环境变量文件中每一行必须符合格式,支持 # 开头的注释行。
6. networks
配置容器连接的网络。
7. ports
暴露端口信息。使用宿主端口:容器端口 (HOST:CONTAINER) 格式。
8. expose
暴露端口,但不映射到宿主机,只被连接的服务访问。
和ports的区别是,expose暴露容器给link到当前容器的容器,不会将端口暴露给主机。
9. restart
指定docker容器(服务)总是运行。
10. 如果需要自定义容器名称,可以使用container_name选项
示例
docker-compose命令
中文文档: https://yeasy.gitbook.io/docker_practice/compose/commands
1. up -d 后台启动
该命令十分强大,它将尝试自动完成包括构建镜像,(重新)创建服务,启动服务,并关联服务相关容器的一系列操作。
默认情况,如果服务容器已经存在,docker-compose up 将会尝试停止容器,然后重新创建(保持使用 volumes-from 挂载的卷),以保证新启动的服务匹配 docker-compose.yml 文件的最新内容。但是不会更新已经打好的镜像,如果镜像错误,不能通过 docker-compose up 更新镜像,只能先删除镜像。如果用户不希望容器被停止并重新创建,可以使用 docker-compose up --no-recreate。这样将只会启动处于停止状态的容器,而忽略已经运行的服务。如果用户只想重新部署某个服务,可以使用 docker-compose up --no-deps -d <SERVICE_NAME> 来重新创建服务并后台停止旧服务,启动新服务,并不会影响到其所依赖的服务。
2. down
此命令将会停止 up 命令所启动的容器,并移除网络,但是不会移除已经打好的镜像。
3. exec
进入指定的容器。和docker的exec命令一样。
4. ps
列出项目中目前的所有容器。
5. top
查看所有服务容器内运行的进程,或者查看指定服务名的容器内运行的进程。
6. logs -f (实时)
查看所有服务容器,或指定服务容器的日志输出。默认情况下,docker-compose 将对不同的服务输出使用不同的颜色来区分。可以通过 --no-color 来关闭颜色。该命令在调试问题的时候十分有用。
到此这篇启动docker-compose命令(启动docker compose)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/rfx/19832.html