【轉】Docker 常用命令

Amei1314發表於2016-07-16
 
docker images:列出本地所有映象
docker search <IMAGE_ID/NAME>:查詢image
docker pull <IMAGE_ID>下載image
docker push <IMAGE_ID>:上傳image
docker rmi <IMAGE_ID>:刪除image
 
容器管理
docker run -i -t <IMAGE_ID> /bin/bash:-i:標準輸入給容器    -t:分配一個虛擬終端    /bin/bash:執行bash指令碼
-d:以守護程式方式執行(後臺)
-P:預設匹配docker容器的5000埠號到宿主機的
-p <HOT_PORT>:<CONTAINER_PORT>:指定埠號
- -name: 指定容器的名稱
- -rm:退出時刪除容器

docker stop <CONTAINER_ID>:停止container
docker start <CONTAINER_ID>重新啟動container
docker ps - Lists containers.
-l:顯示最後啟動的容器
-a:同時顯示停止的容器,預設只顯示啟動狀態

docker attach <CONTAINER_ID> 連線到啟動的容器
docker logs <CONTAINER_ID>  : 輸出容器日誌
docker cp <CONTAINER_ID>:path hostpath:複製容器內的檔案到宿主機目錄上
 
<CONTAINER_ID> docker wait <CONTAINER_ID>:阻塞對容器的其他呼叫方法,直到容器停止後退出

docker top <CONTAINER_ID>:檢視容器中執行的程式
<CONTAINER_ID>:檢視容器中的變化
<CONTAINER_ID>:檢視容器詳細資訊(輸出為Json)
-f:查詢特定資訊,如-'{{ .NetworkSettings.IPAddress }}'

      docker extc -it <CONTAINER> <COMMAND>:在容器裡執行命令,並輸出結果

  • 網路管理
    docker run -P:隨機分配埠號
    docker run -p 5000:5000:繫結特定埠號(主機的所有網路介面的5000埠均繫結容器的5000埠)
    docker run -p 127.0.0.1:5000:5000:繫結主機的特定介面的埠號
    docker run --127.0.0.1:5000:5000/udp training/webapp python app.py:繫結udp埠號
    docker port<CONTAINER_ID> 5000:檢視容器的5000埠對應本地機器的IP和埠號
    使用Docker Linking連線容器:
    docker run -d -P --name <CONTAINER_NAME> --link <CONTAINER_NAME_TO_LINK>:<ALIAS>  
     
  • docker run -d -P --name web -v /webapp training/webapp python app.py
  • 也可以將容器卷掛載到宿主機目錄或宿主機的檔案上,<容器目錄或檔案>的內容會被替換為<宿主機目錄或檔案>的內容,預設容器對這個目錄有可讀寫許可權
    docker run -d -P --name web -v <宿主機目錄>:<容器目錄> training/webapp python app.py
    可以通過指定ro,將許可權改為只讀
    -----:<容器目錄>:r trainingwebapp python apppy
    docker run -d -v /dbdata --name db1 training/postgres echo Data-only container for postgres
    首先啟動了一個容器,併為這個容器增加一個資料卷/dbdata,然後啟動另一個容器,共享這個資料卷
    docker run -d --volumes-from db1 --name db2 training/postgres
    此時db2使用了db1的容器卷,當容器db1被刪除時,容器卷也不會被刪除,只有所有容器不再使用此容器卷時,才會被刪除
    docker rm -v:刪除容器卷
    除了共享資料外,容器卷另一個作用是用來備份、恢復和遷移資料
    docker run --volumes-from db1 -v /home/backup:/backup ubuntu tar cvf /backup/backup.tar /dbdata
    啟動一個容器資料卷使用db1容器的資料卷,同時新建立一個資料卷指向宿主機目錄/home/backup,將/dbdata目錄的資料壓縮為/backup/backup.tar
    docker run -v /dbdata --name dbdata2 ubuntu /bin/bash
    docker run --volumes-from dbdata2 -v /home/backup:/backup busybox tar xvf /backup/backup.tar
    啟動一個容器,同時把backup.tar的內容解壓到容器的backup

    倉庫管理
    docker login:登入

相關文章