docker?desktop安裝redis全過程
1.拉取redis鏡像
docker pull redis:latest
查看鏡像
PS C:WindowsSystem32> docker images REPOSITORY TAG IMAGE ID CREATED SIZE redis latest 0e403e3816e8 3 days ago 113MB mysql 5.7 ae552624b4bd 5 days ago 448MB docker/getting-started latest 26d80cd96d69 3 months ago 28.5MB hello-world latest feb5d9fea6a5 5 months ago 13.3kB
2.創(chuàng)建redis配置文件,為掛載操作做準備
在D盤創(chuàng)建2個文件夾
- conf目錄用于掛載配置文件
- data目錄用于存放數據持久化文件

在conf文件夾新建redis.conf文件,內容如下
#用守護線程的方式啟動 后臺運行 daemonize no #給redis設置密碼 requirepass 123456 #redis持久化 默認是no appendonly yes #防止出現(xiàn)遠程主機強迫關閉了一個現(xiàn)有的連接的錯誤 默認是300 tcp-keepalive 300
3.構建并啟動redis容器
映射到宿主16379端口
docker run --name redis -p 16379:6379 -v /D/docker/redis/conf/redis.conf:/etc/redis/redis_6379.conf -v /D/docker/redis/data:/data/ -d redis:latest redis-server /etc/redis/redis_6379.conf --appendonly yes
- –name=“容器新名字”:為容器指定一個名稱
- -p: 指定端口映射,格式為:主機(宿主)端口:容器端口
- -d: 后臺運行容器,并返回容器ID
- -v /D/docker/redis/conf/redis.conf:/etc/redis/redis_6379.conf 把宿主機配置好的redis.conf放到容器內的這個位置中
- -v /D/docker/redis/data:/data/ 把redis持久化的數據在宿主機內顯示,做數據備份
- –net=host
4.查看容器已經在運行中

使用 QuickRedis客戶端 測試鏈接

接下來就可以愉快的玩耍啦

進入容器

auth “123456” 注意是字符串格式的密碼
redis-cli表示運行一個redis客戶端 (-a 123456 指定密碼)

業(yè)務代碼key格式 采用 ** : 分割** user:token:10001
常見命令
keys * 匹配查找key 由于單線程 key很多時候 效率會降低 help @groupname ex: help @string 也可以直接命代碼 tab會有提示 del key 刪除一個key EXISTS key [key ...] 查看key是否存在 expier key 1 給key設置有效期單位秒 ttl key 查看key的有效期剩余 單位秒 查看鏡像:docker images 獲取一個新鏡像:docker pull 鏡像(ubuntu:16.04) 創(chuàng)建鏡像:1、從已經創(chuàng)建的容器中更新鏡像,并提交這個鏡像;2、使用Dockerfile指令來創(chuàng)建一個新的鏡像。 查看容器:docker ps -a(帶-a是查看所有的,不帶-a是查看啟動的) 查看容器內運行的進程:docker top 容器號 查看應用程序日志:docker logs -f 容器號 創(chuàng)建容器:docker run -it --name 容器名 鏡像名 /bin/bash 啟動容器:docker start 容器名/號 重啟容器:docker restart 容器名/號 停止容器:docker stop 容器名/號 刪除容器:docker rm 容器名/號 進入容器:docker exec -it 容器名/號 /bin/bash
容器間通信
要想多容器之間互通,從 Web 容器訪問 mysql 容器,我們只需要把他們放到同個網橋中就可以了
設置網橋以后,容器之間天然互通
#查看現(xiàn)有網橋
1 docker network ls
#新增我的網橋
2 docker network create -d bridge mysql_pageplug
# 網橋分別綁定兩個容器name
3 docker ps
docker network connect mysql_pageplug mysql8.0
docker network connect mysql_pageplug pageplug
# 查看我們的網橋組中容器的IP
4 docker network ls
docker inspect mysql_pageplug

也可以在創(chuàng)建容器時使用網絡別名(運行 Redis 在 test-net 網絡中,別名redis) docker run -d --name redis --network test-net --network-alias redis redis:latest
當然 如果你使用 docker-compose 只需要描述依賴哪些服務放在一個yml文件下
# 創(chuàng)建網絡
networks:
test_net:
driver: bridge
其他網絡命令
#主機模式啟動
network_mode: "host"
restart: always
指定網絡網段和IP docker network create --subnet=172.18.0.0/16 mynetwork
目錄掛載
為什么要目錄掛載
- 使用 Docker 運行后,我們改了項目代碼不會立刻生效,需要重新build和run,很是麻煩。
- 容器里面產生的數據,例如 log 文件,數據庫備份文件,容器刪除后就丟失了。
幾種掛載方式
- bind mount 直接把宿主機目錄映射到容器內,適合掛代碼目錄和配置文件??蓲斓蕉鄠€容器上
- volume 由容器創(chuàng)建和管理,創(chuàng)建在宿主機,所以刪除容器不會丟失,官方推薦,更高效,Linux 文件系統(tǒng),適合存儲數據庫數據。可掛到多個容器上
- tmpfs mount 適合存儲臨時文件,存宿主機內存中。不可多容器共享。

bind mount 方式用絕對路徑 -v D:/code:/app 掛載數組代碼-> 容器 volume 方式,只需要一個名字 -v db-data:/app
docker inspect mysql8.0
參數 “RW”: false的話表示只讀模式,路徑內文件不能被容器內程序修改

# 啟動容器時掛載具名卷,Docker會為您創(chuàng)建該卷 docker run -d -p 1234:80 -v mynginx:/usr/share/nginx/html nginx:latest docker volume ls docker (volume) inspect mynginx


“$(pwd)”/html
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Docker系列學習之Swarm mode管理節(jié)點常用命令詳解
這篇文章主要為大家介紹了Docker系列學習之Swarm mode管理節(jié)點常用命令詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-10-10
阿里云esc服務器Docker部署單節(jié)點Mysql的講解
今天小編就為大家分享一篇關于阿里云esc服務器Docker部署單節(jié)點Mysql的講解,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-03-03

