Docker 的一大優點是可以讓您快速使用它來試用應用程序,而無需直接在開發人員的計算機上安裝它。如果您不想在自己的計算機上安裝 Java 或 erlang 等運行時環境,那麼您就可以不安裝它們,因為容器封裝了所有依賴項,並在刪除時可以不留下任何痕跡。
接下來,我會持續發佈一些簡短的教程,展示如何使用 Docker 探索各種開源軟件。今天,讓我們先從 Redis 開始。本教程的重點是讓您熟悉創建容器和在容器中執行自定義命令所需的 Docker 命令,同時希望您可以在學習過程中也能學到一些有關 Redis 的基本知識。
簡 介
本教程將介紹如何使用 Docker 探索 Redis。您可以在 Linux 或 Docker for Windows 模式下運行Docker 命令。同時,您也可以用 Play with Docker 來試試。
啟動一個運行 Redis 的新容器
在這裡,我們給它一個名字 —— “redis1”,同時公開6379端口(Redis 默認值)。
docker run -d -p 6379:6379 --name redis1 redis
檢查它是否正在運行
docker ps
查看日誌輸出
docker logs redis1
在容器中運行 Redis CLI
我們將在運行中的容器中用“-it”啟動一個新的交互式會話,並使用它來運行“redis-cli”。我們可以直接運行它,但是現在,讓我們用“sh”啟動一個 shell:
docker exec -it redis1 sh
現在,我們已經連接到容器了。讓我們運行“redis-cli”:
# redis-cli
嘗試一些基本的 Redis 命令
如果我們發送“ping”,應該會返回“PONG”:
127.0.0.1:6379> ping
PONG
嘗試更多命令(設置一個鍵並增加一個計數器):
127.0.0.1:6379> set name mark
OK
127.0.0.1:6379> get name
"mark"
127.0.0.1:6379> incr counter
(integer) 1
127.0.0.1:6379> incr counter
(integer) 2
127.0.0.1:6379> get counter
"2"
當我們完成嘗試後時,退出“redis-cli”和“sh”:
127.0.0.1:6379> exit
# exit
從另一個關聯容器進行連接
現在,讓我們啟動另一個名為“client1”的容器。我們使用 redis 基礎鏡像進行構建,但我們只使用它來運行“redis-cli”,所以我們只要求它在交互模式下運行“sh -it”。這意味著它不會自動運行 Redis。我們使用“--rm”命令,因此它會在 shell 退出後自行刪除。
我們將它鏈接到“redis1”容器(運行中),它將在該容器中被簡單地稱為“redis”。
docker run -it --rm --link redis1:redis --name client1 redis sh
現在在這個容器中,讓我們啟動“redis-cli”並連接到“redis”:
# redis-cli -h redis
redis:6379>
現在讓我們嘗試發佈一些命令。由於我們沒有停止原始的“redis1”容器,我們之前創建的密鑰應該仍然存在:
redis:6379> get name
"mark"
redis:6379> get counter
"2"
現在,退出“redis-cli”和“sh”:
redis:6379> exit
# exit
上述操作導致“client1”容器已經被刪除了。因此,我們需要查看所有容器,包含已停止的容器:
docker ps -a
我們應該能看到這個單獨的 Docker 容器。
清 理
讓我們停止“redis1”容器,然後刪除它。
docker stop redis1
docker rm redis1
我們還下載了 redis 鏡像,我們將在列表中看到它:
docker image ls
它只有 83MB,所以我們可能想要保留它,以便下次運行 Redis 容器時使用,但是如果我們確定不再需要它,我們可以刪除該鏡像來釋放磁盤空間,並讓我們回到之前的起點:
docker image rm redis
總 結
如您所見,只需幾個基本的 Docker 命令,我們就可以在容器中運行 Redis,甚至可以從另一個容器連接到它。
在下一篇系列文章中,我將向您展示如何在 PostgreSQL 上進行相同操作,這將使我們有機會探索 Docker 卷。
閱讀更多 Docker公司 的文章