# Docker Container 指令 ### 主講人:黃夙賢 --- ## Docker指令 ![](https://i.imgur.com/pWazmsf.png) --- ## Docker指令概覽 - docker image - <font color=red>docker container</font> - docker volume - docker network --- ## Docker Container - Docker容器操作指令 - Docker 大部分的操作皆為容器操作,因此命令常常省略container這個字 - docker run \<映像檔\> \<指令\> ![](https://i.imgur.com/LjnmuFs.png =350x) --- ## Docker Run ``` docker run -d ubuntu (ubuntu無automated,所以執行完後直接跳開) docker ps (ubuntu跳開後,找不到執行的容器) docker ps –a (透過-a查詢歷史容器,的確有執行過但直接跳開) docker run –d tutum/apache-php (tutum/apache-php為automated 容器,執行後會存在,利用-d方式當作背景程式執行) docker ps ``` ![](https://i.imgur.com/DBms3ki.png =600x) --- ## -c 指定CPU比例 - docker run –c - 指定cpu的使用比例,多個容器時才能感到差異 ``` docker run --rm -it -c 1024 progrium/stress --cpu 12 --io 1 --vm 2 --vm-bytes 128M --timeout 10s (跑一個十秒的壓力程式,監看cpu的狀況) ``` ![](https://i.imgur.com/TdwMhiw.png =500x) ![](https://i.imgur.com/BfuUoZD.png =400x) --- ## - -attach 連接輸出入 - docker run --attach \<STDOUT\> \<image\> - 執行時接上標準輸出輸入 ![](https://i.imgur.com/bq4Mknk.png =800x) --- ## -e 環境變數 - docker run -e \<環境變數\> \<映像檔\> - 將環境變數傳入容器中(例如使用者帳號、密碼) ``` docker run --name mydb –e MYSQL_ROOT_PASSWORD=abc1234 –d mysql (執行一個mysql docker,設定root密碼為abc1234) docker ps ``` ![](https://i.imgur.com/qaFlwql.png =800x) --- ``` docker exec -it mydb bash (進入mydb測試密碼是否有設成功) mysql -p (進入mysql 並驗證密碼) abc1234 (輸入密碼) show databases; (成功進入,並且可以執行命令) exit exit ``` ![](https://i.imgur.com/SlgT7gM.png) --- ## -it 進入容器 - docker run -it \<image\> \<指令\> - 執行時直接進入容器,使用螢幕鍵盤觀看並輸入指令 ``` docker run –it tutum/apache-php bash (進入tutum/apache-php的bash介面) ls exit ``` ![](https://i.imgur.com/KyfbDpD.png =800x) --- ## -p 指定通訊埠對應 - docker run -p HOSTPORT:CONTAINERPORT \<image\> - 對應主機與容器的通訊埠 ``` docker run -d -p 8888:80 tutum/apache-php curl localhost:8888 (利用curl查看網頁) ``` ![](https://i.imgur.com/vxoeJuZ.png =800x) --- ## 應用題:對應容器port 8888到虛擬機的port 8081 ![](https://i.imgur.com/PAVBnJv.png) ![](https://i.imgur.com/sDVkqsu.png) ![](https://i.imgur.com/Rrnk8LF.png) --- ![](https://i.imgur.com/VryhMTn.png) --- ## Docker rm - docker rm - 刪除執行容器 ``` docker ps docker rm –f mydb (刪除name為mydb之容器) docker ps docker rm –f 1b (用container ID方式刪除容器,本範例container id 起頭為1b) docker ps ``` ![](https://i.imgur.com/GIaO0aK.png =800x) --- ## 應用題:刪除所有執行過的容器 - docker ps -aq (列出所有的執行過的容器) - $()把上面命令變成參數 ``` docker rm -f $(docker ps -aq) ``` ---
{"metaMigratedAt":"2023-06-17T18:26:46.751Z","metaMigratedFrom":"YAML","title":"Docker Container 指令","breaks":true,"contributors":"[{\"id\":\"ef0225b9-6c2a-4012-82c9-fa1031d2c4db\",\"add\":2492,\"del\":1}]"}
    175 views