使用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_USER
和FTP_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和端口号即可。
在集群模式下,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-
1、官方文档
The timeout will only be cleared by commands that delete or overwrite the contents of the key