docker部署redis
首先在linux中安裝上Docker,然后啟動Docker服務(wù)
Centos7中 啟動Docker
systemctl start docker //啟動docker
systemctl stop docker //停止docker
systemctl restart docker //重啟docker
查找想要拉取的鏡像
1. 直接在Linux中使用docker search 鏡像名稱 搜索鏡像
docker search 鏡像名稱
2. 在DockerHub官網(wǎng)上查找
使用docker pull 鏡像名稱 拉取鏡像
docker pull redis //不指定版本號,默認(rèn)拉取最新。
docker pull redis:6.0.8
拉取完鏡像后,使用docker images查看已經(jīng)拉取的鏡像
docker images
docker rmi 鏡像ID //刪除鏡像
在運(yùn)行之前對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ī)訪問 將其改為0.0.0.0
protected-mode no # 默認(rèn)yes,開啟保護(hù)模式,限制為本地訪問
daemonize no 默認(rèn)no,改為yes意為以守護(hù)進(jìn)程方式啟動,yes會使配置文件方式啟動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)行(后臺運(yùn)行)
-i 以交互模式運(yùn)行容器
-t 為容器重新分配一個偽輸入終端
-p 映射容器服務(wù)的 6379 端口到宿主機(jī)的 6379 端口。外部可以直接通過宿主機(jī)ip:6379 訪問到 Redis 的服務(wù)。
//未加-it可能會運(yùn)行不起來因?yàn)椋珼ocker容器后臺運(yùn)行,就必須有一個前臺進(jìn)程,容器運(yùn)行的命令不是那些一直掛起的命令(比如運(yùn)行top,tail),會自動退出
-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的配置啟動
–appendonly yes //redis啟動后數(shù)據(jù)持久化
運(yùn)行之后對容器進(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)錯誤
Docker容器做端口映射報錯
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)于在docker中部署并啟動redis的方法的文章就介紹到這了,更多相關(guān)docker中部署啟動redis內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!