您好,登錄后才能下訂單哦!
這篇文章主要介紹“Docker怎么運行一個Redis服務”,在日常操作中,相信很多人在Docker怎么運行一個Redis服務問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Docker怎么運行一個Redis服務”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
參考官網即可。我在Ubuntu-14.04上通過User Guide沒有任何問題。
執行:docker info可以看到系統級別的信息。如下所示,可以看到docker使用的存儲驅動叫aufs。簡而言之,AUFS就是一個可堆疊聯合文件系統,通過aufs可靈活組裝一個目標容器,如在一個只讀的操作系統上疊加一個可讀可寫的應用程序容器,當應用程序執行過程中發生數據變化,只在可寫的容器層發生,這樣可實現靈活的容器組裝(如替換操作系統層而不影響應用程序層),同時無需像image一樣需要保存成一個大文件,節省存儲空間。
Containers: 2 Images: 20 Storage Driver: aufs Root Dir: /var/lib/docker/aufs Dirs: 24 Execution Driver: native-0.2 Kernel Version: 3.13.0-24-generic WARNING: No swap limit support
ubuntu下每次執行docker都要輸入sudo,比較煩人,可通過如下配置簡化
# 添加當前用戶到docker用戶組里,注意這里的littcai為ubuntu server登錄用戶名 sudo gpasswd -a littcai docker # 重啟Docker后臺監護進程 sudo service docker restart # 重啟之后,嘗試一下,是否生效 docker version #若還未生效,則系統重啟,則生效 sudo reboot
執行如下命令:運行一個名為common-redis的docker容器,-d表示以daemon方式運行,-p表示將容器內的6379端口映射到宿主主機的6379端口,這樣一個最簡單的redis服務就創建好了。
sudo docker run --name common-redis -d -p 6379:6379 redis
運行redis-cli命令并link到之前運行的common-redis服務上,-it表示開一個tty終端,提供交互模式,--rm表示自動刪除已運行存在的相同image的容器
sudo docker run -it --link common-redis:redis --rm redis sh -c 'exec redis-cli -h "$REDIS_PORT_6379_TCP_ADDR" -p "$REDIS_PORT_6379_TCP_PORT"'
有時候我們需要重新進入一個正在運行的container,這里我們可以使用attach命令,其中-i表示以交互方式訪問。當需要退出時,需使用ctrl-p + ctrl-q(注意是連續兩個指令)而不是exit(exit會導致容器停止)。
docker attach -i f2b0ae55d07a
首先用docker ps -a命令查詢所有已創建的容器,如下圖所示,得知其CONTAINER ID=f2b0ae55d07a
執行如下命令保存鏡像,其中-m表示本次提交的注釋,-a為author,f2b0ae55d07a為容器ID,ycai/ubuntu-jdk為鏡像名稱(此處通過前綴方式增加了用戶名作為分類,方便查詢),v1為tag名。
docker commit -m="Basic JDK ENV" -a="ycai" f2b0ae55d07a ycai/ubuntu-jdk:v1
提交成功后,可通過docker images命令查看鏡像倉庫中是否有剛才保存的鏡像,如下圖所示
拷貝容器內文件到Host
sudo docker cp container:/path hostpath
拷貝Host文件到容器內
注:這個操作不修改原來的image內容,而是再它的基礎上新建一個image.
sudo docker insert image url path
通過-v參數可以將Host的指定目錄mount到目標容器的指定目錄,這樣就可以直接在Host中修改文件而不用每次都復制到容器中了。
sudo docker run --name tomcat -v /home/user/webapps:/opt/tomcat/webapps ubuntu-tomcat
問題:通過-v掛載了Host的一個目錄到容器中,然而退出后通過start命令再啟動該容器,則Host該目錄下的文件變化沒法體現到容器中,容器中在該目錄下的文件操作無法體現到Host中,及mount失效了。
現象:將容器內掛載目錄下的文件刪掉,退出容器,再重新啟動進入容器,發現目錄又被重新mount上了,而且又支持雙向同步了,詭異
分析:該目錄同時也是Host通過mount方式掛載的一個遠端存儲,由于Host上mount失效導致三者之間不同步
到此,關于“Docker怎么運行一個Redis服務”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。