溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Docker怎么運行一個Redis服務(wù)

發(fā)布時間:2021-12-14 11:50:06 來源:億速云 閱讀:284 作者:iii 欄目:云計算

這篇文章主要介紹“Docker怎么運行一個Redis服務(wù)”,在日常操作中,相信很多人在Docker怎么運行一個Redis服務(wù)問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Docker怎么運行一個Redis服務(wù)”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

安裝

參考官網(wǎng)即可。我在Ubuntu-14.04上通過User Guide沒有任何問題。

Docker神奇的AUFS文件系統(tǒng)

執(zhí)行:docker info可以看到系統(tǒng)級別的信息。如下所示,可以看到docker使用的存儲驅(qū)動叫aufs。簡而言之,AUFS就是一個可堆疊聯(lián)合文件系統(tǒng),通過aufs可靈活組裝一個目標容器,如在一個只讀的操作系統(tǒng)上疊加一個可讀可寫的應(yīng)用程序容器,當應(yīng)用程序執(zhí)行過程中發(fā)生數(shù)據(jù)變化,只在可寫的容器層發(fā)生,這樣可實現(xiàn)靈活的容器組裝(如替換操作系統(tǒng)層而不影響應(yīng)用程序?qū)樱?,同時無需像image一樣需要保存成一個大文件,節(jié)省存儲空間。

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

煩人的sudo

ubuntu下每次執(zhí)行docker都要輸入sudo,比較煩人,可通過如下配置簡化

# 添加當前用戶到docker用戶組里,注意這里的littcai為ubuntu server登錄用戶名
sudo gpasswd -a littcai docker
# 重啟Docker后臺監(jiān)護進程
sudo service docker restart
# 重啟之后,嘗試一下,是否生效
docker version
#若還未生效,則系統(tǒng)重啟,則生效
sudo reboot

運行

運行一個Redis服務(wù)

執(zhí)行如下命令:運行一個名為common-redis的docker容器,-d表示以daemon方式運行,-p表示將容器內(nèi)的6379端口映射到宿主主機的6379端口,這樣一個最簡單的redis服務(wù)就創(chuàng)建好了。

sudo docker run --name common-redis -d -p 6379:6379 redis

連接到Redis服務(wù)

運行redis-cli命令并link到之前運行的common-redis服務(wù)上,-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"'

Attach到Container

有時候我們需要重新進入一個正在運行的container,這里我們可以使用attach命令,其中-i表示以交互方式訪問。當需要退出時,需使用ctrl-p + ctrl-q(注意是連續(xù)兩個指令)而不是exit(exit會導(dǎo)致容器停止)。

docker attach -i f2b0ae55d07a

保存修改(new image)

首先用docker ps -a命令查詢所有已創(chuàng)建的容器,如下圖所示,得知其CONTAINER ID=f2b0ae55d07a
Docker怎么運行一個Redis服務(wù)
執(zhí)行如下命令保存鏡像,其中-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命令查看鏡像倉庫中是否有剛才保存的鏡像,如下圖所示
Docker怎么運行一個Redis服務(wù)

拷貝文件

拷貝容器內(nèi)文件到Host

sudo docker cp container:/path hostpath


拷貝Host文件到容器內(nèi)
注:這個操作不修改原來的image內(nèi)容,而是再它的基礎(chǔ)上新建一個image.

sudo docker insert image url path

掛載Host目錄到容器中

通過-v參數(shù)可以將Host的指定目錄mount到目標容器的指定目錄,這樣就可以直接在Host中修改文件而不用每次都復(fù)制到容器中了。

sudo docker run --name tomcat -v /home/user/webapps:/opt/tomcat/webapps ubuntu-tomcat

Docker容器連接

未理解問題

問題:通過-v掛載了Host的一個目錄到容器中,然而退出后通過start命令再啟動該容器,則Host該目錄下的文件變化沒法體現(xiàn)到容器中,容器中在該目錄下的文件操作無法體現(xiàn)到Host中,及mount失效了。
現(xiàn)象:將容器內(nèi)掛載目錄下的文件刪掉,退出容器,再重新啟動進入容器,發(fā)現(xiàn)目錄又被重新mount上了,而且又支持雙向同步了,詭異
分析:該目錄同時也是Host通過mount方式掛載的一個遠端存儲,由于Host上mount失效導(dǎo)致三者之間不同步

到此,關(guān)于“Docker怎么運行一個Redis服務(wù)”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI