服务器环境

操作系统:Ubuntu 16.04 x64

docker版本:18.09.7

docker-compose版本:1.8.0

说明:

  1. 本次实验,docker和docker-compose均使用apt安装。
  2. 确定当前用户已经加入到docker组
    如果没有,执行如下命令sudo gpasswd -a ${USER} docker,然后退出当前用户重新登录。

开始安装

在服务器适当位置新建portainer文件夹

1
mkdir -p ~/docker/redis

进入该文件夹,然后编写docker-compose.yml文件。

1
2
3
cd ~/docker/redis
mkdir data
vi docker-compose.yml

文件内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
version: '2.0'
services:
redis:
restart: always
image: redis
container_name: dev.redis
hostname: dev.redis
command: redis-server --requirepass P@ssw0rd --appendonly yes
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime
- ./data:/data
ports:
- 6379:6379
networks:
- dev_net
networks:
dev_net:
external:
name: dev_net

docker-compose.yml文件保存完毕之后,执行如下命令即可启动redis:

1
2
docker network create dev_net
docker-compose up -d

注意:

如果启动的时候报错:”内存设置为0,内存不足的情况下,后台保存可能会失败的错误”,此时需要修改如下配置:

1
vi /etc/sysctl.conf

在文件最后添加如下内容:

1
vm.overcommit_memory=1

然后保存退出!

在控制台输入sysctl vm.overcommit_memory=1,然后重新执行docker-compose up -d即可。如果刚刚已经在redis目录下执行了启动命令,需要先执行docker-compose down然后再执行docker-compose up -d命令,此时应该就可以正常启动Redis了,成功启动的Redis运行在6379端口,密码是”p@ssw0rd”。