一、docker-compose

  • docker-compose是什么?

Docker Compose是一个用于定义和运行多个容器Docker应用程序的工具。它允许您定义一组容器,这些容器组成一个完整的应用程序,且这些容器之间可以互相通信。通过Docker Compose,您可以使用一个单独的文件来定义应用程序的服务、网络、卷等元素,并且可以使用简单的命令来启动、停止、构建和销毁整个应用程序。
Docker Compose是一个命令行工具,它可以通过一个YAML文件来描述多个Docker容器之间的关系和依赖关系。

  • 常见命令讲解

1、这将启动所有服务,并将它们的输出输出到终端窗口,如下所示:

docker-compose up

2、如果您想在后台运行服务,请添加"-d"选项,如下所示:

docker-compose up -d

3、如果您想只启动某个服务,而不是所有服务,请使用以下命令:

docker-compose up <service-name>

将"service-name"替换为您想要启动的服务的名称。

二、docker-compose的应用

2.1 使用docker-compose部署redis

1、在linux服务器中创建目录,用于持久化

mkdir -p /opt/software/redis/config
mkdir -p /opt/software/redis/data

2、进入当前目录创建docker-compose.yml

cd /opt/software/redis
vim docker-compose.yml

3、向配置文件中增加以下内容:

version: "3.8"
services:
  redis:
    image: redis
    ports:
      - "6321:6379"
    volumes:
      - ./config:/opt/config
      - ./data:/data
    command: redis-server /opt/config/redis.conf

将本地的 ./config/redis.conf 文件挂载到 Redis 容器中的 /opt/config目录下。最后,使用 command 指令指定 Redis 启动时使用挂载的配置文件。

4、新增redis的配置文件:vi /opt/software/redis/config/redis.conf,如下所示:

# 开启 AOF 持久化
appendonly yes

# 指定 AOF 文件名
appendfilename "appendonly.aof"

# 指定 AOF 文件保存目录
dir /data

# 关闭 RDB 持久化
save ""
# 开启 RDB 持久化
#save 900 1
#save 300 10
#save 60 10000

# 禁用 Redis 的保护模式,允许外部连接
protected-mode no

# 允许其他服务访问
bind 0.0.0.0
#设置密码
# requirepass foreign2024@

# 指定 Redis 监听的端口
port 6379

# 指定日志生成的文件
#logfile /var/log/redis/redis.log

最终目录如下:
在这里插入图片描述

5、前台启动redis,使用Ctrl+c会删除容器,我们可以查看启动日志

docker-compose up 

在这里插入图片描述
生产上一般建议后台启动

docker-compose up -d

查看启动的容器,如下所示

docker ps

在这里插入图片描述
进入容器,配置文件已经生效,并且生成了aof的配置文件

[root@ecs-431f-0001 redis]# docker exec -it ba57cdf34667 /bin/bash
root@ba57cdf34667:/data# redis-cli 
127.0.0.1:6379> set ani anzhijie
OK
127.0.0.1:6379> keys *
1) "an"
2) "ani"
127.0.0.1:6379> exit
root@ba57cdf34667:/data# ls
appendonly.aof
root@ba57cdf34667:/data# 
GitHub 加速计划 / compose / compose
33.27 K
5.15 K
下载
compose - Docker Compose是一个用于定义和运行多容器Docker应用程序的工具,通过Compose文件格式简化应用部署过程。
最近提交(Master分支:2 个月前 )
501b5acd Add `jhrotko` to Core Maintainers. Signed-off-by: Laura Brehm <laurabrehm@hey.com> 7 天前
f51bc4cd Signed-off-by: Guillaume Lours <705411+glours@users.noreply.github.com> 7 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐