使用docker安装常见软件

阅读数:9 评论数:0

跳转到新版页面

分类

应用软件

正文

一、安装redis

1、运行命令

docker run -d \
  --name redis \
  -p 6379:6379 \
  redis:latest

2、持久化配置

如果需要持久化 Redis 数据:

docker run -d \
  --name redis \
  -p 6379:6379 \
  -v /path/to/redis/data:/data \
  redis:latest \
  redis-server --appendonly yes
  • /path/to/redis/data 是主机上的数据存储路径。

3、修改redis配置

如设置密码

(1)方式一,直接在运行容器时使用环境变量配置

docker run -d \
  --name redis \
  -p 6379:6379 \
  -e REDIS_PASSWORD=yourpassword \
  redis:latest \
  redis-server --requirepass yourpassword

 

  • --requirepass yourpassword 设置 Redis 的访问密码。
  • -e REDIS_PASSWORD=yourpassword 仅用于记录方便,并不是 Redis 的原生支持。

(2)方式二,将自定义的redis.conf文件挂载到容器中,以替代默认的配置文件

  • 在宿主机上创建一个 Redis 配置文件 redis.conf
requirepass yourpassword
appendonly yes
  • 将文件挂载到容器中:
docker run -d \
  --name redis \
  -p 6379:6379 \
  -v /path/to/redis.conf:/usr/local/etc/redis/redis.conf \
  redis:latest \
  redis-server /usr/local/etc/redis/redis.conf

 

  • /path/to/redis.conf 是宿主机上的配置文件路径。
  • redis-server /usr/local/etc/redis/redis.conf 命令指定 Redis 使用自定义配置文件。

(3)方式三,使用dockerfile构建镜像

通过自定义 Dockerfile 构建包含修改配置的 Redis 镜像。

  • 创建dockerfile
FROM redis:latest

# 添加自定义配置文件
COPY redis.conf /usr/local/etc/redis/redis.conf

# 启动 Redis 并加载配置文件
CMD ["redis-server", "/usr/local/etc/redis/redis.conf"]
  • 构建镜像
docker build -t custom-redis .
  • 运行容器
docker run -d \
  --name redis \
  -p 6379:6379 \
  custom-redis

(4)方式四,使用cli动态修改配置

在容器运行后,可以通过 redis-cli 动态修改配置。此方法修改的配置只在当前运行时有效。

  • 设置密码
docker exec -it redis redis-cli
> CONFIG SET requirepass "yourpassword"
  • 持久化到配置文件
> CONFIG REWRITE

 

 

二、安装mysql

1、运行命令

docker run -d \
  --name mysql \
  -e MYSQL_ROOT_PASSWORD=root_password \
  -p 3306:3306 \
  mysql:latest

2、持久化配置

docker run -d \
  --name mysql \
  -e MYSQL_ROOT_PASSWORD=root_password \
  -p 3306:3306 \
  -v /path/to/mysql/data:/var/lib/mysql \
  mysql:latest
  • /path/to/mysql/data 是主机上的数据存储路径。

三、安装zookeeper

1、运行命令

docker run -d \
  --name zookeeper \
  -p 2181:2181 \
  zookeeper:latest

2、持久化配置

docker run -d \
  --name zookeeper \
  -p 2181:2181 \
  -v /path/to/zookeeper/data:/data \
  -v /path/to/zookeeper/datalog:/datalog \
  zookeeper:latest

 

  • /path/to/zookeeper/data 是主机上的数据存储路径。
  • /path/to/zookeeper/datalog 是数据日志存储路径。

四、安装minio

1、运行命令

docker run -d \
  --name minio \
  -p 9000:9000 \
  -p 9001:9001 \
  -e "MINIO_ROOT_USER=minioadmin" \
  -e "MINIO_ROOT_PASSWORD=minioadmin" \
  quay.io/minio/minio server /data --console-address ":9001"

2、持久化配置

docker run -d \
  --name minio \
  -p 9000:9000 \
  -p 9001:9001 \
  -e "MINIO_ROOT_USER=minioadmin" \
  -e "MINIO_ROOT_PASSWORD=minioadmin" \
  -v /path/to/minio/data:/data \
  quay.io/minio/minio server /data --console-address ":9001"
  • /path/to/minio/data 是主机上的数据存储路径。
  • 访问 MinIO 控制台:http://localhost:9001

五、安装vsftp

1、运行命令

docker run -d \
  --name vsftp \
  -p 21:21 \
  -p 21000-21010:21000-21010 \
  -v /path/to/vsftp:/home/vsftpd \
  -e FTP_USER=user \
  -e FTP_PASS=password \
  fauria/vsftpd

 

  • /path/to/vsftp 是主机上的数据存储路径。
  • FTP_USERFTP_PASS 设置 FTP 用户名和密码。
  • 被动模式: 确保防火墙允许 21 和 21000-21010 端口的访问。

六、docker compose

通过 Docker Compose 可以同时启动上述所有服务。以下是一个示例 docker-compose.yml 文件:

version: '3.8'
services:
  redis:
    image: redis:latest
    container_name: redis
    ports:
      - "6379:6379"
    volumes:
      - ./redis/data:/data
    command: redis-server --appendonly yes

  mysql:
    image: mysql:latest
    container_name: mysql
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: root_password
    volumes:
      - ./mysql/data:/var/lib/mysql

  zookeeper:
    image: zookeeper:latest
    container_name: zookeeper
    ports:
      - "2181:2181"
    volumes:
      - ./zookeeper/data:/data
      - ./zookeeper/datalog:/datalog

  minio:
    image: quay.io/minio/minio
    container_name: minio
    ports:
      - "9000:9000"
      - "9001:9001"
    environment:
      MINIO_ROOT_USER: minioadmin
      MINIO_ROOT_PASSWORD: minioadmin
    volumes:
      - ./minio/data:/data
    command: server /data --console-address ":9001"

  vsftp:
    image: fauria/vsftpd
    container_name: vsftp
    ports:
      - "21:21"
      - "21000-21010:21000-21010"
    environment:
      FTP_USER: user
      FTP_PASS: password
    volumes:
      - ./vsftp:/home/vsftpd

启动服务

docker-compose up -d



相关推荐

一、redis-cli redis-cli,这个命令将打开redis终端。输入ping命令,如果有pong响应,说明正常启动。 用法:redis-cli [OPTIONS] [cmd [arg [ar

protected-mode是为了禁止公网访问redis,加强redis安全的。它启用的条件,有两个: (1)没有bind IP (2)没有设置访问密码。 <

一、单机模式 1、优点 (1)部署简单 (2)成本低 (3)高性能,因为不需要同步数据 2、缺点 (1)可靠性差 二、主从复制模式 主从模式配置很简单,只需要在从节点配置主节点的ip和端口号即可。

前置知识 1、requirepass验证客户端,对登录权限做限制,redis每个节点的requirepass可以是独立、不同的。 <p

在集群模式下,redis在接收到键任何命令时会先计算该键所在的槽,如果改键所在的槽位于当前节点,则直接执行命令,如果改键位于其它节点,则不执行该命令,返回重定向信息。比如hello这

1、sentinel不会存储数据。 2、客户端不会直接从redis中获取信息,而是从sentinel获取信息。 3、sentinel的默认端口是26379 <

redis-cli keys "s*" | xargs redis-cli del 另外还可以用-n指定操作的数据库编号 redis-cli -n 2 keys "s*" | xargs redis-

psubscribe pattern [pattern] 与subscribe一样,只是可以使用*匹配符匹配多个channel

ZSCORE key member 如果member元素不是有序集key的成员,或key不存在,返回nil

1、官方文档 The timeout will only be cleared by commands that delete or overwrite the contents of the key