ToB企服应用市场:ToB评测及商务社交产业平台
标题:
Docker Compose 备忘清单
[打印本页]
作者:
写过一篇
时间:
2024-5-20 00:11
标题:
Docker Compose 备忘清单
Docker Compose 备忘清单
Docker-compsoe 是一个开源项目,用于界说和运行多容器 Docker 应用程序的工具。由 Docker 社区维护。
通过一个 YAML 文件来设置应用程序的服务,以便可以使用一个命令启动、停止和重启整个应用程序。
Docker Compose 开源地址
Docker Compose 发行地址
github.com
基本概念
即一个应用程序的一个实例。
容器 (container):
Docker 容器,其中运行着应用程序的一个实例。
镜像 (image):
Docker 镜像,用于创建容器的模板。
Docker-Compose 文件:
一个 YAML 文件,描述了应用程序的各个服务以及它们之间的关系、设置等信息。
Docker-Compose 文件结构
version:
Docker-Compose
文件的版本。
services: 界说了各个服务,每个服务都有本身的设置项,如镜像、端口映射、依靠等。
networks: 界说了应用程序使用的网络,可以自界说网络以控制服务之间的通信。
volumes: 界说了应用程序使用的卷,用于持久化数据或与主机共享文件。
常用命令
docker compose up
启动容器
-d 背景运行容器
docker compose down
停止容器
-v 删除容器和卷
docker compose ps
查看容器状态
docker compose logs
查看容器日志
-f 跟随日志输出
docker compose exec
进入容器
-it 启动交互式终端
docker compose build
构建镜像
docker compose rm
删除容器
docker compose stop
停止容器
docker compose start
启动容器
docker compose restart
重启容器
docker compose pull
拉取镜像
docker compose run
运行一个临时容器
docker compose config
显示设置信息
docker compose images
列出镜像
docker compose push
推送镜像
docker compose version
查看版本信息
Docker Compose 设置
docker-compose 的设置文件是一个 YAML 文件,用于界说和运行多容器 Docker 应用程序。通常定名为 docker-compose.yml,它使用单一的 YAML 文件来界说多个容器的集合,以及它们之间的依靠关系和服务。以下是一份 docker-compose.yml 文件的设置模板,包罗了常用设置项息争释:
<font size="3">version: '3' # 指定使用的 Docker Compose 文件格式版本,目前推荐使用 3.x 或更高
services: # 定义一个或多个服务
service1: # 服务名称
image: nginx:latest # 使用的 Docker 镜像,这里是 Nginx 的最新版本
# 或者使用构建指令来从 Dockerfile 构建镜像
build:
context: ./path/to/Dockerfile # Dockerfile 所在的目录
dockerfile: Dockerfile-alternative # 可选的 Dockerfile 名称,默认是 Dockerfile
# 容器启动时执行的命令,覆盖默认的命令
command:
- "nginx"
- "-g"
- "daemon off;" # 以数组形式指定,防止 shell 解析
ports: # 容器端口与主机端口映射
- "80:80" # 主机 80 端口映射到容器的 80 端口
volumes: # 数据卷挂载
- ./nginx.conf:/etc/nginx/nginx.conf:ro # 将主机上的 nginx.conf 挂载到容器的 /etc/nginx/nginx.conf,只读
- ./logs:/var/log/nginx # 将 logs 目录挂载到容器的 /var/log/nginx
environment: # 设置环境变量
- MYSQL_HOST=database # 可以引用其他服务,这里假设有一个名为 database 的服务
- MYSQL_PORT=3306
depends_on: # 服务启动顺序,这里表明 service1 依赖于 database 服务
- database
networks: # 定义网络
- my_network # 参与名为 my_network 的网络
service2: # 另一个服务示例
# ... 类似地定义其他服务
networks: # 定义网络
my_network: # 网络名称
driver: bridge # 网络驱动,通常是 bridge 模式
volumes: # 定义数据卷
nginx_logs: # 卷名称</font>
复制代码
<font size="3"><br></font>
复制代码
使用环境变量
与 docker run -e VARIABLE=VALUE ... 相同
<font size="3">web:
environment:
- DEBUG=1
</font>
复制代码
您可以选择不设置值并将环境变量从 shell 直接传递到容器。它的工作方式与 docker run -e VARIABLE ... 相同:
<font size="3">web:
environment:
- DEBUG
web:
environment:
- DEBUG=${DEBUG}
</font>
复制代码
env_file 属性允许您在 Compose 应用程序中使用多个 .env 文件。 它的工作方式与 docker run --env-file=FILE ... 相同。
<font size="3">web:
env_file:
- web-variables.env
</font>
复制代码
额外的信息
<font size="3">env_file:
- path: ./default.env
required: true # default
- path: ./override.env
required: false
</font>
复制代码
如果指定了多个文件,则它们将按顺序进行评估,可以覆盖先前文件中设置的值。
在 .env 文件中声明的环境变量不能在 Compose 文件中单独再次引用。
如果同时使用 env_file 和 environment 属性,则由 environment 设置的环境变量优先级更高。
在 env_file 属性中指定的 .env 文件的路径是相对于 compose.yml 文件的位置的。
.env 文件中的值可以通过使用 docker compose run -e 命令行来从命令行覆盖。
如果使用 --env-file 更换了另一个 .env,则您的 .env 文件可以被另一个 .env 文件覆盖。
从 Docker Compose 版本 2.24.0 开始,您可以通过使用 required 字段将 .env 文件设置为可选项。当 required 设置为 false 且 .env 文件丢失时,Compose 将静默忽略该条目
<font size="3"><br></font>
Tips
使用 Docker-Compose 可以简化多容器应用程序的部署和管理,但需要注意容器之间的依靠关系和通信。
设置文件中的缩进必须使用空格,不能使用制表符。
可以使用环境变量来动态设置设置项,如数据库密码。
当你修改了 docker-compose.yml 文件后,需要重新运行 docker-compose up 来使改动见效。
使用 docker-compose build 仅重建镜像,而不启动容器。
使用 docker-compose restart 重启容器。
记得清算不再需要的容器和镜像,以避免磁盘空间不敷。
本日先到这儿,希望对云原生,技能向导力, 企业管理,系统架构设计与评估,团队管理, 项目管理, 产物管理,信息安全,团队建立 有参考作用 , 您大概感兴趣的文章:
构建创业公司突击小团队
国际化环境下系统架构演化
微服务架构设计
视频直播平台的系统架构演化
微服务与Docker先容
Docker与CI持续集成/CD
互联网电商购物车架构演变案例
互联网业务场景下消息队列架构
互联网高效研发团队管理演进之一
消息系统架构设计演进
互联网电商搜索架构演化之一
企业信息化与软件工程的迷思
企业项目化管理先容
软件项目成功之要素
人际沟通风格先容一
精益IT组织与分享式向导
学习型组织与企业
企业创新文化与等级观念
组织目的与个人目的
初创公司人才招聘与管理
人才公司环境与企业文化
企业文化、团队文化与知识共享
高效能的团队建立
项目管理沟通计划
构建高效的研发与自动化运维
某大型电商云平台实践
互联网数据库架构设计思绪
IT基础架构规划方案一(网络系统规划)
餐饮行业解决方案之客户分析流程
餐饮行业解决方案之采购战略制定与实验流程
餐饮行业解决方案之业务设计流程
供应链需求调研CheckList
企业应用之性能实时度量系统演变
如有想了解更多软件设计与架构, 系统IT,企业信息化, 团队管理 资讯,请关注我的微信订阅号:
作者:
Petter Liu
出处:
http://www.cnblogs.com/wintersun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保存此段声明,且在文章页面显着位置给出原文连接,否则保存追究法律责任的权利。 该文章也同时发布在我的独立博客中-Petter Liu Blog。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4