Docker容器技术
Docker基础概念
Docker安装配置
通过docker registry搭建私有仓库
Dockerfile编写学习
数据卷管理
Docker 镜像
Docker容器管理
daemon.json配置示例
Dcocker网络互联
Docker部署nextcloud网盘
Watchtower-容器的自动升级
想要轻松上手Docker?Portainer帮你实现零基础快速部署!
Nextcloud搭建
Docker搭建Mrdoc
Mrdoc迁移记录
Docker部署wordpress博客
Docker部署个人密码管理平台bitwarden
Docker-compose安装配置
Docker-compose搭建小说阅读器
Docker搭建青龙面板
Docker搭建自己的导航页dashy
uptime-kuma监控面板部署
容器搭建Nas-tool及相关套件
本文档使用 MrDoc 发布
-
+
首页
Docker-compose安装配置
# 一、Docker-compose概述 Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。通过Docker Compose,您可以使用YAML文件来配置应用程序需要的所有服务,并使用一个命令从YAML文件配置中创建并启动所有服务。 Compose 中有两个重要的概念: - 服务(service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。 - 项目(project):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。 Compose 的默认管理对象是项目,通过子命令对项目中的一组容器进行便捷地生命周期管理。想要使用docker-compose需要安装好docker环境。 使用步骤: - 安装docker环境 - 下载docker-compose可执行文件 - 编写.yaml文件定义项目和服务 - 启动并管理多个容器 举例:以部署wordpress博客为例,如果使用docker需要手动部署mysql、redis、wordpress博客,而且容器间还有依赖关系,先启动mysql容器再启动wordpress容器。如果是以docker-compose则可以将3个容器定义为一个项目,项目包含3个服务,并且先启动mysql和redis,最后启动wordpress并连接。 ## 二、下载安装 docker-compose是一个可执行文件,直接下载到Bin目录,赋予执行权限即可。可以直接在服务器下载或者下载完成后上传到`/usr/local/bin/`目录。 ```linux # 下载二进制文件 sudo curl -L https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose # 赋予权限 chmod +x /usr/local/bin/docker-compose # 测试 docker-compose -v ``` ## 简单使用 在目录下创建.yaml文件。 ```linux # 创建一个docker-compose.yaml文件,内容如下: version: '3' services: mysql: image: mysql:latest ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: password volumes: - mysql_data:/var/lib/mysql redis: image: redis:latest ports: - "6379:6379" wordpress: image: wordpress:latest ports: - "8080:80" environment: WORDPRESS_DB_HOST: mysql WORDPRESS_DB_USER: root WORDPRESS_DB_PASSWORD: password WORDPRESS_DB_NAME: wordpress REDIS_HOST: redis depends_on: - mysql - redis volumes: mysql_data: ``` 说明: - 文件格式:yml文件的格式层级关系是缩进两个英文状态的空格,不能用缩进符等替代空格。 - 指令与值:如果指令后面需要写值必须是英文冒号+英文空格方可写值,如:image: “mysql:5.7”。 - 多值指令:对于可以写多个值的指令(一般这样的指令都是这个单词的复数格式,如volumes、networks、ports等),对于这些指令的值需要冒号换行后使用 - 指定一个值,如果有多个值,使用多个 - 指定。如: ports: #指定端口映射 - "9003:9989" #端口映射关系 和ports一起相当于-p 9003:9989 - "8080:8080"。 - 文件名:docker-compose文件的名称只能是以下四个之一:docker-compose.yml、docker-compose.yaml、 compose.yml、compose。 - 服务定义:每个服务都必须明确定义在services字段下,并有一个唯一的服务名称。服务定义包括镜像名称、环境变量、端口映射等。 - 依赖关系:可以使用depends_on字段来定义服务的依赖关系,以确保在启动服务之前先启动依赖的服务。 - 网络配置:可以使用networks字段来定义自定义网络,并在服务中指定该网络。 - 卷挂载:可以使用volumes字段来定义卷,并在服务中指定挂载点。 简单说就是以创建一个指定名称的yaml文件,以缩进格式编写定义服务于容器名称,端口映射,卷挂载,环境变量,与docker部署一致。必须在services下面定义容器配置,然后使用镜像等等内容。 启动整个项目,在.yaml文件的当前目录执行`docker-compose up -d` ```linux # 启动容器 docker-compose up -d # 重启 docker-compose restart # 停止删除容器 docker-compose down ``` 使用docker-compose可以实现整个项目的停止重启或者单个服务的管理。 常见的管理命令: - 启动和运行服务:docker-compose up。 - 停止服务:docker-compose stop。 - 重新启动服务:docker-compose restart。 - 构建服务:docker-compose build。 - 删除服务:docker-compose rm。 - 列出服务:docker-compose ps。 - 查看日志:docker-compose logs。 - 获取服务容器的详细信息:docker-compose inspect。 - 进入容器:docker-compose exec [服务名称] [命令]。 - 删除项目:docker-compose down。 总结:通过在docker-compose.yaml批量创建容器,并且容器间可以实现依赖与顺序启动,方便进行管理。通过在services下面定义服务,服务的定义与docker一致,注意缩进格式即可。
Chuck
2023年12月25日 09:51
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码