溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

redis數(shù)據(jù)庫(kù)怎么在docker環(huán)境中部署

發(fā)布時(shí)間:2020-12-18 13:50:47 來(lái)源:億速云 閱讀:169 作者:Leah 欄目:開發(fā)技術(shù)

redis數(shù)據(jù)庫(kù)怎么在docker環(huán)境中部署?針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

docker部署redis

首先在linux中安裝上Docker,然后啟動(dòng)Docker服務(wù)

Centos7中 啟動(dòng)Docker
 systemctl start docker //啟動(dòng)docker
 systemctl stop docker //停止docker
 systemctl restart docker //重啟docker

查找想要拉取的鏡像

1. 直接在Linux中使用docker search 鏡像名稱 搜索鏡像
       docker search 鏡像名稱
2. 在DockerHub官網(wǎng)上查找

使用docker pull 鏡像名稱 拉取鏡像

docker pull redis //不指定版本號(hào),默認(rèn)拉取最新。
docker pull redis:6.0.8

拉取完鏡像后,使用docker images查看已經(jīng)拉取的鏡像

docker images
docker rmi 鏡像ID //刪除鏡像

在運(yùn)行之前對(duì)redis進(jìn)行一些配置

redis.conf的配置文件可以在 http://download.redis.io/redis-stable/redis.conf 上下載
使用 mkdir /usr/local/docker 在宿主機(jī)上創(chuàng)建存放docker目錄
vi /usr/local/docker/redis.conf 在docker中創(chuàng)建redis的配置文件redis.conf
將下載好的redis.conf文件替換或?qū)?nèi)容復(fù)制到自己創(chuàng)建的配置文件中

然后修改配置

bind 127.0.0.1 //127.0.0.1 限制只能本機(jī)訪問(wèn) 將其改為0.0.0.0

protected-mode no # 默認(rèn)yes,開啟保護(hù)模式,限制為本地訪問(wèn)

daemonize no 默認(rèn)no,改為yes意為以守護(hù)進(jìn)程方式啟動(dòng),yes會(huì)使配置文件方式啟動(dòng)redis失?。ㄒ婚_啟就退出)

運(yùn)行指定鏡像

1. $ docker run -itd --name redis-test -p 6379:6379 redis

2. $ docker run -itd -p 192.168.220.129:6379:6379 --name redis -v /usr/local/docker/redis.conf:/etc/redis/redis.conf -v /usr/local/docker/data:/data redis redis-server /etc/redis/redis.conf 

-d 以守護(hù)線程的方式運(yùn)行(后臺(tái)運(yùn)行)
-i 以交互模式運(yùn)行容器
-t 為容器重新分配一個(gè)偽輸入終端 
-p 映射容器服務(wù)的 6379 端口到宿主機(jī)的 6379 端口。外部可以直接通過(guò)宿主機(jī)ip:6379 訪問(wèn)到 Redis 的服務(wù)。

 //未加-it可能會(huì)運(yùn)行不起來(lái)因?yàn)?,Docker容器后臺(tái)運(yùn)行,就必須有一個(gè)前臺(tái)進(jìn)程,容器運(yùn)行的命令不是那些一直掛起的命令(比如運(yùn)行top,tail),會(huì)自動(dòng)退出

-v /usr/local/docker/redis.conf:/etc/redis/redis.conf //把宿主機(jī)配置好的redis.conf掛載到容器內(nèi)的指定位置

-v /usr/local/docker/data:/data //把redis持久化的數(shù)據(jù)掛載到宿主機(jī)內(nèi),做數(shù)據(jù)備份

redis-server /etc/redis/redis.conf //使redis按照redis.conf的配置啟動(dòng)

–appendonly yes //redis啟動(dòng)后數(shù)據(jù)持久化

運(yùn)行之后對(duì)容器進(jìn)行操作

1. 查看運(yùn)行中的容器 docker ps
2. 查看所有的容器 docker ps -a
3. 進(jìn)入容器 docker exec -it 容器ID /bin/bash
4. 停止所有的容器 docker stop $(docker ps -q)
5. 刪除所有的容器 docker rm $(docker ps -aq)
6. 停止并刪除全部 docker stop $(docker ps -q) & docker rm $(docker ps -aq)

出現(xiàn)錯(cuò)誤

Docker容器做端口映射報(bào)錯(cuò)

docker: Error response from daemon: driver failed programming external connectivity on endpoint lamp3 (46b7917c940f7358948e55ec2df69a4dec2c6c7071b002bd374e8dbf0d40022c): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 86 -j DNAT --to-destination 172.17.0.2:80 ! -i docker0: iptables: No chain/target/match by that name.

解決方法
  重啟docker服務(wù) 

     systemctl restart docker

關(guān)于redis數(shù)據(jù)庫(kù)怎么在docker環(huán)境中部署問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI