今天操作docker命令,顯然不那麼令人滿意,總結一下常用命令
安裝docker:
顯像管理
docker images:列出本地所有映象
docker search :查詢imagedocker pull :
docker push :上傳image
docker rmi :刪除image
容器管理
docker run -i -t /bin/bash:-i:標準輸入給容器 -t:分配乙個虛擬終端 /bin/bash:執行bash指令碼
-d:以守護程序方式執行(後台)
-p:預設匹配docker容器的5000埠號到宿主機的49153 to 65535埠
docker stop :-p ::指定埠號
- -name: 指定容器的名稱
- -rm:退出時刪除容器
停止container
docker start
:重新啟動container
docker ps - lists containers.
-l:顯示最後啟動的容器
-a:同時顯示停止的容器,預設只顯示啟動狀態
docker attach 連線到啟動的容器docker cp :path hostpath:複製容器內的檔案到宿主機目錄上docker logs : 輸出容器日誌
-f:實時輸出
docker rm:刪除container
docker rm `docker ps -a -q`:刪除所有容器
docker kill `docker ps -q`
docker rmi `docker images -q -a`
docker wait :阻塞對容器的其他呼叫方法,直到容器停止後退出
docker top :檢視容器中執行的程序
docker diff :檢視容器中的變化
docker inspect :檢視容器詳細資訊(輸出為json)
-f:查詢特定資訊,如docker inspect -f
'}'
docker commit -m "comment" -a "author" ouruser/imagename:tag
docker extc -it :在容器裡執行命令,並輸出結果
網路管理
docker run -p:隨機分配埠號docker run -p 5000:5000:繫結特定埠號(主機的所有網路介面的5000埠均繫結容器的5000埠)
docker run -p 127.0.0.1:5000:5000:繫結主機的特定介面的埠號
docker run -d
-p 127.0
.0.1
:5000
:5000
/udp training/.
py:繫結udp埠號
docker port
5000:檢視容器的5000埠對應本地機器的ip和埠號
使用docker linking連線容器:
docker為源容器和接收容器建立乙個安全的通道,容器之間不需要暴露埠,接收的容器可以訪問源容器的資料
docker run -d -p --name --link :
資料管理
data volumes:volume是在乙個或多個容器裡指定的特殊目錄
可以在容器啟動的時候新增-v引數指定容器卷,也可以在dockerfile裡用volumn命令新增
docker run -d
-p --name web -v
//.py
也可以將容器卷掛載到宿主機目錄或宿主機的檔案上,《容器目錄或檔案》的內容會被替換為《宿主機目錄或檔案》的內容,預設容器對這個目錄有可讀寫許可權
docker run -d
-p --name web
-v 《宿主機目錄》
:《容器目錄》
training/.
py
可以通過指定ro,將許可權改為唯讀
在乙個容器建立容器卷後,其他容器便可以通過--volumes-from共享這個容器卷資料,如下:docker run -d
-p --name web
-v 《宿主機目錄》
:《容器目錄》:
rotraining/.
py
首先啟動了乙個容器,並為這個容器增加乙個資料卷/dbdata,然後啟動另乙個容器,共享這個資料卷docker run -d
-v /dbdata
--name db1 training
/postgres echo
data
-only container
forpostgres
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.tardocker run -v
/dbdata
--name dbdata2 ubuntu
/bin
/bash
啟動乙個容器,同時把backup.tar的內容解壓到容器的backupdocker run
--volumes
-from
dbdata2
-v /home/backup
:/backup busybox tar xvf
/backup
/backup
.tar
倉庫管理
docker login:登入
Docker Container同時啟動多服務
昨天踩了個天坑,我有乙個基本的映象centos6.5 ssh,是通過dockerfile build的,利用cmd命令啟動ssh。通過centos6.5 ssh映象,我想build乙個rabbitmq映象,dockerfile中cmd啟動rabbitmq服務。雖然我知道dockerfile中的cmd...
docker container 動態修改記憶體限制
原文 docker動態修改配置用docker update,用法 docker update h flag shorthand h has been deprecated,please use help usage docker update options container container....
連線 Docker Container 的幾種方式
經過熟悉之後,在 docker 裡安裝了乙個 ubuntu 準備學習使用。然後遇到了一些問題 使用 docker run d ubuntu 之後,container在執行之後馬上退出了。原因很簡單,在docker run 之後沒有命令引數,新增 bash 就可以了 docker run d ubun...