Friday, April 5, 2019

Docker 環境安裝 Redis 到外網訪問



Docker 環境安裝 Redis 到外網訪問


寫到一半的時候發現,那我們的東西 ,都放在裡面的話是不是不能拿出來???
當然要想辦法給外面用,所以我找到了大概這些東西

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


簡單翻了一下,大概搭建到完成Redis 使用的指令
  • docker ps  類似 linux 管理 目前containers 那些被啟動
  • docer 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

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...