Docker 環境安裝 Redis 到外網訪問

---

寫到一半的時候發現,那我們的東西,都放在裡面的話是不是不能拿出來???

當然要想辦法給外面用,所以我找到了大概這些東西

  • docker 簡單指令
  • docker 訪問 外部文件(簡單版) 直接 跟著做
  • docker 映射連接埠 至 外網 直接 跟著做

Docker 簡單指令

---

簡單翻了一下,大概搭建到完成Redis 使用的指令

  • docker ps 類似 linux 管理 目前containers 那些被啟動
  • docker stop start restart containers開開關關
  • docker -d -p 外部端口 ip映射
  • docker -v 掛載 外部文件會用到
  • docker --name containers 名稱
  • docker-machine ip default 查docker 實體ip
  • docker exec -it {ps_name} bash 中括號不算
  • docker rm 砍 containers用的 (我目前還沒用到)

看得很模糊走一次就知道了

Docker install Redis

---

在Redis 裡面呢 假設我們要配置伺服器的話那麼

  • docker search redis
  • docker pull redis:latest
  • docker images

執行完後會下載 Redis 最後一個版本囉,接下來看下面 就是大概就這邊比較可以學到東西

Docker Run Redis!

---

上面裝完了基本上就可以 來創造我們的一個 containers

這是 這次的主角 配置 參數,那麼我將會根據 步驟 來 反白我們參數目前進行的部分

docker run -d -p 192.168.99.100:56379:6379 -v /c/Users/redis.conf:/usr/local/etc/redis/redis.conf --name myredis13 redis redis-server /usr/local/etc/redis/redis.conf

https://segmentfault.com/a/1190000014091287

Docker 查詢 docker 實體機 位置

---

docker run -d -p 192.168.99.100:56379:6379 -v /c/Users/redis.conf:/usr/local/etc/redis/redis.conf --name myredis13 redis redis-server /usr/local/etc/redis/redis.conf

  • docker-machine ip default 查docker 實體ip

Docker 訪問外部 conf

---

https://hub.docker.com/_/redis/

docker run -d -p 192.168.99.100:56379:6379 -v /c/Users/redis.conf:/usr/local/etc/redis/redis.conf --name myredis13 redis redis-server /usr/local/etc/redis/redis.conf 在Redis 裡面呢 假設我們要配置服務器的話那麼怎麼辦呢,我想到可以用vim去配置,或修改文件,後來想想,那既然已經cmd能不能就是直接有本地端直接配置 conf文件呢,查找了一下 大致上是這樣的,我找到了一個最間單的方法,要比較完整的請找 -v 參數 或者是 volume?? 在windows 裡面裝的 docker 要讀 conf的 系統大致上已經幫我們配置了一個地方可以放也就是 C:\Users 這個目錄

我們把 Redis 伺服器設定檔放到這個地方,這個文件可以從 我們編譯 Redis 的地方 目錄可以拿的到 所以從這裡把設定檔redis.conf複製到C:\Users\

那我們的Redis 基本上就可以抓到了

Docker 映射連接埠至外網

---

docker run -d -p 192.168.99.100:56379:6379 -v /c/Users/redis.conf:/usr/local/etc/redis/redis.conf --name myredis14 redis redis-server /usr/local/etc/redis/redis.conf

這串指令我還沒詳細介紹過,我大致從頭在講一次,docker 啟動 一個Redis 然後 會去映射連接埠 到 192.168.99.100:56379這個連接埠,被映射連接埠為6379 然後 我們的設定檔位於 C:\Users\裡面的redis.conf 在這邊寫法為 /c/Users/redis.conf,然後映射到虛擬機的位置為/usr/local/etc/redis/redis.conf,接下來我們創造的 container 他的名字叫做myredis14 然後 選擇啟動哪個 Image 也就是redis,然後 呼叫系統服務 redis-server /usr/local/etc/redis/redis.conf 他的設定檔為 /usr/local/etc/redis/redis.conf

我們的目標要把Redis 連接埠映射到port :56379,首先 我們先看 docker ps 首先我們要先設定檔給設定正確的ip docker inspect 137|grep -i add 搜尋 此 containers 裡面Ip位置,目前還不知道docker 架構所以我隨便說的,可能 docker 想像是一個vm 然後 你啟動她一定是抓取內網ip等等等等,服務設定檔就是去監聽自己的連接埠172.17.0.2 所以 虛擬機裡的服務去監聽自己 那們我們來更動一下位置 設為 bind 172.17.0.2 接下來,設定完畢後我們可以 來啟動了 這邊的話假設要看文件是否有更動呢, docker run -d -p 192.168.99.100:56379:6379 -v /c/Users/redis.conf:/usr/local/etc/redis/redis.conf --name myredis14 redis redis-server /usr/local/etc/redis/redis.conf 首先我們的 docker ps 管理器 為空,那麼可以來下指令 沒意外可以看到我們的 容器為 myredis14 已經被啟動了!

弄個大概我們可以把它產生 一個 image docker commit 137a23d757d8 redis/testimage:version1 假設其他你有要儲存的東東,下次就可以繼續使用囉!

Docker 刪除多餘的table

---

docker ps -a --format "table {{.ID}}\t{{.Names}}"

docker rm myreadis14...