# 六角鼠年鐵人賽 Week 7 - Docker Container 操作指令 ==大家好,我是 "為了拿到金角獎盃而努力著" 的文毅青年 - Kai== ### 望海潮 洛陽懷古 秦觀 :::info 梅英疏淡,冰澌溶泄,東風暗換年華。金谷俊遊,銅駝巷陌,新晴細履平沙。長記誤隨車。正絮翻蝶舞,芳思交加。柳下桃蹊,亂分春色到人家。 西園夜飲鳴笳。有華燈礙月,飛蓋妨花。蘭苑未空,行人漸老,重來是事堪嗟。煙暝酒旗斜。但倚樓極目,時見棲鴉。無奈歸心,暗隨流水到天涯。 ::: 進入重頭戲,前幾篇文章針對 Image、DockerFile 都講了很多設定與操作上的種種。 這篇就來告訴大家,關於 Container 的操作以及一些小技巧~ ## 列出所有 Container ``` docker ps -a ```  :::info 列出關於 ID、Image、建立日期和 **狀態** 等資訊。 其中最重要的狀態,可以讓開發者知道目前 Container 是否在運行 ::: ## 使用 Image 建置並啟動 Container ``` docker run [Image Name] ```  :::info 使用上述指令後,Docker 會自動建立一個新的 Container,並運行這個 Container (狀態) 在使用這個指令的同時還有許多額外的參數可以帶入,詳細可參考 [官方說明](https://docs.docker.com/engine/reference/commandline/run/) 以下列出幾個比較常用的參數 |參數|說明| |---|---| |--add-host|增加一個host對應IP的設定| |-d|會在背景執行 Container,並秀出 Container ID| |-p|指定與主機關聯的 port,e.g. -p 8080:8080| |-P|開啟所有 Image 設定的 port| |--rm|當有來自相同 Image 的 Container,會刪除既存在的(舊的),執行新的| ::: ## 進入 Container ``` docker exec -it [Container ID] /bin/bash docker exec -it [Container ID] /bash ```  :::info 兩個指令皆可以進入 Container。 ::: ## 查看 Container IP ``` (已進入 Container 中) cat /etc/hosts ```  :::info Docker Container 的 default IP 是 172.17.0.2 但如果是使用 Windows 開的開發者們要注意,你運行的 Container,如果要從本機端連線的話,要使用 Docker Machine 的 IP 位置去連。 ::: ## 查看 Docker Machine IP ``` docker-machine ip ```  :::info 使用此句可以查詢到目前 Docker Machine 是使用哪一個虛擬 IP ::: ## 啟用/停止 Container ``` docker start [Container ID] docker stop [Container ID] ```  :::info start 啟用 stop 停止 非常好記的兩個指令,其中 start 部分不需要再去加入 IP 等參數,這些設定會在第一次建立 Container 的時候設定保存在 Container 中 ::: ## 重啟 Container ``` docker restart [Container ID] ```  :::info 有了啟動和停止,當然會有重啟,指令一樣很好記 ::: ## 刪除 Container ``` docker rm [Container ID] docker rm --force [Container] docker rm $(docker ps -a -q) ```  :::info 第一句語法可以刪除個別的 Container 第二句語法可以強制刪除正在運行的 Container (非常不建議) 第三句語法可以刪除那些狀態是 stop 的 Containers ::: ## 殺死 Container ``` docker kill --signal [Container ID] ```  :::info 如字面意義上的說法,rm 會把 Container 刪除,但 kill 僅是殺死,Container 本身還在,但會變得無法運行,可以透過 rm 方式刪除掉 ::: ## 儲存 Container 變動為新的 Image ``` docker commit container [Container ID] [New Image Name:TAG] ``` :::info 這個指令可以保存現有的 Container,並直接轉為儲存一個新的 Image ::: ## 查看 Container 資訊 ``` docker inspect [Container ID] docker stats [Container ID] or nothing docker port [Container ID] docker ps -a docker logs [Container ID] ``` :::info 因為操作多種功能就不一一列出截圖了~ 第一句會列出所有底層資訊,是開發人員常用的指令,來去確認 Container 的設定無誤 第二句會列出目前所有或單獨的 Container 的CPU、記憶體及網路使用量 第三句會秀出目前 Container 設定與主機連線的 port 第四句也是很常用的,列出所有 Container 與顯示其基本狀態資訊 第五句會秀出該 Container 內部的 Logs 資訊 ::: ## 結語 :::danger 未來如果有學到更多操作,會再更新回來~ 下篇將會分享更多關於 **Docker 效能調整與匯入匯出功能** 的學習心得 [六角鼠年鐵人賽 Week 8 - Docker 容器效能調整與Image匯入匯出](/SOPt184HT7qE6SaQa8KHnQ) ::: 首頁 [Kai 個人技術 Hackmd](/2G-RoB0QTrKzkftH2uLueA) ###### tags: `Docker`,`w3HexSchool`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up