--- title: Docker 相關指令大全 tags : Docker,CMD --- Docker 相關指令大全 === ###### tags: `Docker` `CMD` --- ## :memo: Docekr 常用指令 <div class="docker-image"> | 指令 | 名稱 | | ----------------------------------------- |:----------------------------------:| | docker images -a | 顯示全部的 image(映像檔) | | docker images -q | 顯示全部的 image(映像檔) ID | | docker container ls | 顯示全部"運行中"的 container(容器) | | docker container ls -a | 顯示全部的 container(容器) | | docker container kill <containerID> | 終止特定 container(容器) | | docker volume ls | 顯示全部的 volume(數據) | | docker volume ls -q | 顯示全部的 volume(數據)名稱 | </div> --- ### :clock1: docker image 指令建置 image 建置指令 :arrow_right: **`docker build <-t tags> <-f {dockerName}> .`** - **-t** 可自定義 image 版本名稱:版本,以分隔號區分 - **-f** 預設為 "PATH/Dockerfile",使用後可指定進行的檔案 :arrow_right: 其他相關細節指令可[參考官網](https://docs.docker.com/reference/cli/docker/buildx/build/) #### ``` CMD C:\User\eclipse\setest> docker build -t anco:1.0.0 -f Dockerfile.txt . ```  :arrow_up: 注意指令中 <font color=red>**需要一個小句點**</font>,才方可正常執行 --- ### :clock2: docker image 移除 image 移除指令 :arrow_down: - **`docker images rm <imageID>`** - **`docker rmi <imageID>`**  :arrow_right: 若是想要一次清除 image 的檔案,<font color="red">**則必須使用 bash CLI 介面指令處理**</font> image 一次清除 : `docker rmi $(docker images -a -q)` > 組合 docker images -q 特性僅取得 imageID 資訊 > 直接將 docker rmi 所需的 imageID 一口氣取出並直接移除 --- ### :clock3: docker run 建置container | Port測試設定 當上述 image 已經建置完畢後,就可以啟動 container 設定 container 建置指令 :arrow_down: `docker run <--name containerName> <-p containerPort:imagePort> <imageID>` :::info <center>  </center> :exclamation: 這裡要先說明關於 container Port 的設定問題,由上述圖片可以知道些事情 - **DOCKER_HOST (Linux VM) 建置 port 設定為 8089** - **Docker client (Window) 建置 port 設定為 9999** docker run 指令中 -port 設定有寫 <-p containerPort:imagePort> **其 containerPort 為 Docker client,imagePort 為 DOCKER_HOST** > 外部使用Port號為 Docker client(containerPort) > 內部運作Port號為 DOCKER_HOST(imagePort) 所以在連線上應使用外部Port號 Docker client(containerPort) 的阜號 ::: ``` D:\source\anco_dessert>docker images -a REPOSITORY TAG IMAGE ID CREATED SIZE anco 1.0.0 e8d4ab832744 29 minutes ago 555MB anco 1.0.1 e8d4ab832744 29 minutes ago 555MB D:\source\anco_dessert> docker run --name ANCO -p 8085:8089 e8d4ab832744 ... Compiled successfully! You can now view anco_dessert in the browser. Local: http://localhost:8089/ANCO On Your Network: http://172.17.0.2:8089/ANCO Note that the development build is not optimized. To create a production build, use npm run build. webpack compiled successfully ```  以上述定若沒有清楚了解 container 與 host 之間的 Port號關聯 Port 的設定問題就會卡關,所以先了解下【外\內埠溝通連接問題】的處理才比較有效喔 :::info :bulb: 關於docker文件上port的說明  docker 文件已說明 port 相關設定 > 1. 127.0.0.1:80 :arrow_right: > host machine(本身開docker的機器) 設定port為80連接埠 > 2. 8080/tcp :arrow_right: > docker machine(docker內部建置linux機器) 設定port為8080連接埠 因此許多文章都會提及到連接埠說明 `-p <host_port>:<docker_inner_port>` ::: --- ### :clock4: docker login 登入相關hub login 相關使用可[參考這裡](https://linuxhint.com/how-to-login-into-docker-via-command-prompt/)  --- ### :clock5: docker push 映像檔至 hub 如果未先使用 docker login 登入驗證,docker push 會被直接 denied push 推送指令 :arrow_right: **`docker push <dockerHubName/imageName:tags>`**  > 尚未登入成功,且 image檔名稱 不符合docker Hub推送原則 成功 push 至 dockerHub,需先於 dockerHub建置相關的 repository 位置才能push   --- ### :clock6: docker start 啟動服務 意外在使用 cmd 執行 docker 指令發現有抱錯問題  於 Error Message 得知原來是 **docker engine 服務尚未啟動**  指令啟動 docker 服務就可以使用 docker 指令查看 image/container 了 cmd 啟動服務指令 :arrow_right: **`start "" "<dockerAbsoluteLoaction> <Desktop.exe executeFile>"`**  --- ### :computer: 連結 <div class="link-Table"> | 參考網站 | 連結 | |:------------------------- |:-----------------------------------:| | \[Docker\] 透過 Dockerfile 來創建 Image | [:link:][\[Docker\] 透過 Dockerfile 來創建 Image] | | \[Docker\] Spring boot apps port mapping in docker container|[:link:][\[Docker\] Spring boot apps port mapping in docker container]| | \[Docker\] how to login into docker via command prompt|[:link:][\[Docker\] how to login into docker via command prompt]| | \[Docker\] denied: requested access to the resource is denied 解決方式 |[:link:][\[Docker\] denied: requested access to the resource is denied 解決方式]| | \[Docker\] cmd docker 起動服務器指令 | [:link:][\[Docker\] cmd docker 起動服務器指令] | | \[Docker\] Dockerfile build Error with not found Dockerfile.txt problem | [:link:][\[Docker\] Dockerfile build Error with not found Dockerfile.txt problem]| [\[Docker\] 透過 Dockerfile 來創建 Image]: https://mks.tw/3407/docker-%E9%80%8F%E9%81%8E-dockerfile-%E4%BE%86%E5%89%B5%E5%BB%BA-image [\[Docker\] Spring boot apps port mapping in docker container]:https://stackoverflow.com/questions/67120152/spring-boot-apps-port-mapping-in-docker-container [\[Docker\] how to login into docker via command prompt]: https://linuxhint.com/how-to-login-into-docker-via-command-prompt/ [\[Docker\] denied: requested access to the resource is denied 解決方式]:https://israynotarray.com/docker/20220423/196903828/ [\[Docker\] cmd docker 起動服務器指令]: https://stackoverflow.com/questions/44169435/how-to-start-the-docker-daemon [\[Docker\] Dockerfile build Error with not found Dockerfile.txt problem]:https://stackoverflow.com/questions/64985913/failed-to-solve-with-frontend-dockerfile </div> <style> div.link-Table > table th:nth-of-type(1) { width: 80vw; } div.link-Table > table th:nth-of-type(2) { width: 10vw; } div.docker-image > table th:nth-of-type(1){ width: 60vw; } div.docker-image > table th:nth-of-type(2){ width: 40vw; } </style>
×
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