Docker - Redis-4.0.1(CentOS 7.3)

參考於: https://hub.docker.com/_/redis/

  • 記錄docker啓動redis鏡像,redis使用自定義redis.conf配置文件;
  • 記錄selinux開啓,使用自定義配置文件產生的問題;
  • 記錄docker下使用redis-cli,通過容器互聯訪問和遠程訪問。

1.啓動

docker run -d \
    --name redis-server \
    -p 6379:6379 \
    --restart always \
    -v $PWD/Dockers/redis/data:/data:Z \
    -v $PWD/Dockers/redis/redis.conf:/usr/local/etc/redis/redis.conf:Z \
    redis:latest \
    redis-server /usr/local/etc/redis/redis.conf
  • -v $PWD/Dockers/redis/redis.conf:/usr/local/etc/redis/redis.conf:Z,使用自定義配置。最後的:Zselinux爲開啓狀態下必須添加。
  • 執行上述命令前,先在相應的目錄下準備好redis.conf文件(此處全路徑爲:$PWD/Dockers/redis/redis.conf)。
  • 需要密碼則開啓requirepass參數配置。
  • 需要遠程對外提供服務則註釋bind 127.0.0.1

首先看數據卷映射不加:Z:

[root@Riped-MicroService-04 kygl]# docker run -d \
>     --name redis-server \
>     -p 6379:6379 \
>     --restart always \
>     -v $PWD/Dockers/redis/data:/data:Z \
>     -v $PWD/Dockers/redis/redis.conf:/usr/local/etc/redis/redis.conf \
>     redis:latest \
>     redis-server /usr/local/etc/redis/redis.conf
213b57fb720ad736938e5a8d7ccd8448e469a5dd6a501d4765e58f400a7f8214
#容器被創建,狀態一直爲Restarting
[root@Riped-MicroService-04 kygl]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                         PORTS                    NAMES
213b57fb720a        redis:latest        "docker-entrypoint.sh"   4 seconds ago       Restarting (1) 1 seconds ago   0.0.0.0:6379->6379/tcp   redis-server
#由於selinux的原因,redis-server啓動的時候不能訪問/usr/local/etc/redis/redis.conf
[root@Riped-MicroService-04 kygl]# docker logs redis-server 
1:C 22 Sep 07:26:38.330 # Fatal error, can't open config file '/usr/local/etc/redis/redis.conf'
1:C 22 Sep 07:26:38.824 # Fatal error, can't open config file '/usr/local/etc/redis/redis.conf'
1:C 22 Sep 07:26:39.407 # Fatal error, can't open config file '/usr/local/etc/redis/redis.conf'
......

通過systemctl status -l docker.service也可以看到以上錯誤。

數據卷映射加入:Z
通過docker rm -f redis-server之上創建的容器,然後執行帶:Z的啓動命令
,再次查看容器狀態:

[root@Riped-MicroService-04 kygl]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
2b21841e768d        redis:latest        "docker-entrypoint.sh"   2 minutes ago       Up 2 minutes        0.0.0.0:6379->6379/tcp   redis-server

2.使用redis-cli訪問redis-server

  • 在本地通過容器互聯
docker run -it \
    --name redis-cli \
    --rm \
    --link redis-server:r-server \
    redis:latest \
    redis-cli -h r-server -p 6379 -a redis-67
  • --name redis-cli 容器名稱,可省略

  • --rm 容器退出後自動刪除當前容器

  • --link redis-server:r-server,連接之前啓動的名字爲redis-server的容器,並且設置別名爲r-server

  • 遠程訪問

docker run -it \
    --name redis-cli \
    --rm \
    redis:latest \
    redis-cli -h 10.27.213.67 -p 6379 -a redis-67

和上述本地訪問基本一樣,在本地用這種方式也是同樣可以的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容