docker命令中的一些奇淫技巧

1 獲取日誌

獲取容器的輸出信息可以使用如下命令:

docker logs [OPTIONS] CONTAINER

常用的配置項有:

  • -t 或 –timestamps 顯示時間戳

  • -f 實時輸出,類似於 tail -f

如下所示,我們查看剛剛創建的容器的日誌,使用如下命令:

$ docker container logs -tf test

2 顯示進程

除了獲取日誌之外,還可以顯示運行中的容器的進程信息,例如查看剛剛創建的容器的進程信息:

$ docker container top test

需要注意的是,該命令對於並未運行的容器是無效的

3 查看修改

查看相對於鏡像的文件系統來說,容器中做了哪些改變,可以使用如下命令:

docker container diff test

例如我們在 test 容器中創建一個文件123,然後刪除了一個文件2,就可以使用 diff 命令查看到相應的修改:

$ docker diff test                                            [18:33:52]
C /root
A /root/.bash_history
A /root/123
A /root/2

它只記錄了上一回的修改操作

PS : 附上docker run 的一些常用參數

參考lynk-coder的博文《4.1 docker-1.12 run命令運行以及參數詳解》

Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]    
  
  -d, --detach=false         指定容器運行於前臺還是後臺,默認爲false     
  -i, --interactive=false   打開STDIN,用於控制檯交互    
  -t, --tty=false            分配tty設備,該可以支持終端登錄,默認爲false    
  -u, --user=""              指定容器的用戶    
  -a, --attach=[]            登錄容器(必須是以docker run -d啓動的容器)  
  -w, --workdir=""           指定容器的工作目錄   
  -c, --cpu-shares=0        設置容器CPU權重,在CPU共享場景使用    
  -e, --env=[]               指定環境變量,容器中可以使用該環境變量    
  -m, --memory=""            指定容器的內存上限    
  -P, --publish-all=false    指定容器暴露的端口    
  -p, --publish=[]           指定容器暴露的端口   
  -h, --hostname=""          指定容器的主機名    
  -v, --volume=[]            給容器掛載存儲卷,掛載到容器的某個目錄    
  --volumes-from=[]          給容器掛載其他容器上的卷,掛載到容器的某個目錄  
  --cap-add=[]               添加權限,權限清單詳見:http://linux.die.net/man/7/capabilities    
  --cap-drop=[]              刪除權限,權限清單詳見:http://linux.die.net/man/7/capabilities    
  --cidfile=""               運行容器後,在指定文件中寫入容器PID值,一種典型的監控系統用法    
  --cpuset=""                設置容器可以使用哪些CPU,此參數可以用來容器獨佔CPU    
  --device=[]                添加主機設備給容器,相當於設備直通    
  --dns=[]                   指定容器的dns服務器    
  --dns-search=[]            指定容器的dns搜索域名,寫入到容器的/etc/resolv.conf文件    
  --entrypoint=""            覆蓋image的入口點    
  --env-file=[]              指定環境變量文件,文件格式爲每行一個環境變量    
  --expose=[]                指定容器暴露的端口,即修改鏡像的暴露端口    
  --link=[]                  指定容器間的關聯,使用其他容器的IP、env等信息    
  --lxc-conf=[]              指定容器的配置文件,只有在指定--exec-driver=lxc時使用    
  --name=""                  指定容器名字,後續可以通過名字進行容器管理,links特性需要使用名字    
  --net="bridge"             容器網絡設置:  
                                bridge 使用docker daemon指定的網橋       
                                host    //容器使用主機的網絡    
                                container:NAME_or_ID  >//使用其他容器的網路,共享IP和PORT等網絡資源    
                                none 容器使用自己的網絡(類似--net=bridge),但是不進行配置   
  --privileged=false         指定容器是否爲特權容器,特權容器擁有所有的capabilities    
  --restart="no"             指定容器停止後的重啓策略:  
                                no:容器退出時不重啓    
                                on-failure:容器故障退出(返回值非零)時重啓   
                                always:容器退出時總是重啓    
  --rm=false                 指定容器停止後自動刪除容器(不支持以docker run -d啓動的容器)    
  --sig-proxy=true           設置由代理接受並處理信號,但是SIGCHLD、SIGSTOP和SIGKILL不能被代理

-------------The End-------------

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章