D&K 課程筆記7 Multi-Command Container
由前面介紹image建立之初就已經綁定了Running Command
但是例如DataBase這樣的程式,在一般操作下
除了一開始執行程式運行外,後續想對DB做額外操作,就需要Multi-Command
接下來示範利用docker運行簡單的DataBase->redis
首先透過docker直接pull並運行redis,執行:
docker run redis
等到出現以下畫面,就表示redis開始運行(此畫面只能放著)
此時再開啟另一個視窗來嘗試對上述運行中redis下指令:
docker exec -it <ContainerId> <Command>
首先取得ContainerID,執行docker ps指令
放大一點...
執行上述的指令來對redis做操作,進入到redis-cli介面
docker exec -it fb98d9d9e302 redis-cli
此時就可以對redis DB做簡單操作EX:
原本image只能單純建立出包含運行redis-server的Container
透過上述的docker exec -it <ContainerID> <Command>
可以做到如下操作
另外試著捨棄指令中的-it會看到如下效果(會立即離開redis-cli)
首先先記得,Container機制都是建立在Linux
Linux任何程式操作都有三個溝通的Channel-(STDIN、STDOUT、STDERR)
透過STDIN將執行的指令(set get之類)送給redis-cli
而STDOUT將redis-cli運作過程的完整訊息送出並顯示
STDERR則是將任何錯誤顯示出來
所以上述的-it其中i指的是將訊息送進STDIN
但是t則是將OUT訊息印出前完整化
所以可以做個示範不帶t