docker常用命令

  • 當我們創建一個容器的時候,docker 會自動對它進行命名。另外,我們也可以使用 --name 標識來命名
  • -d 讓 Docker 在後臺運行而不是直接把執行命令的結果輸出在當前宿主機下
    [root@test32 ~]# docker run nginx /bin/sh -c "while true; do echo hello world; sleep 1; done"
    hello world
    hello world
    hello world
    hello world
[root@test32 ~]# docker run -d nginx /bin/sh -c "while true; do echo hello world; sleep 1; done"
2939156e31bb2913453aaa424214376c382aabef2bf1903e723e2ad9f6330e35
[root@test32 ~]# docker ps 
CONTAINER ID        IMAGE                                          COMMAND                  CREATED             STATUS              PORTS                NAMES
2939156e31bb        nginx                                          "/bin/sh -c 'while..."   17 seconds ago      Up 15 seconds       80/tcp               youthful_hodgkin
  • 此時用 docker logs 來查看日誌

    [root@test32 ~]# docker logs -f -t 293915
    2018-12-26T10:34:40.558068000Z hello world
    2018-12-26T10:34:41.559143000Z hello world
    2018-12-26T10:34:42.560398000Z hello world
    2018-12-26T10:34:43.561626000Z hello world
    2018-12-26T10:34:44.562831000Z hello world
    2018-12-26T10:34:45.564119000Z hello world

    -f 跟蹤實時日誌
    --since string 顯示自某個timestamp之後的日誌,或相對時間,如42m(即42分鐘)
    --tail string 從日誌末尾顯示多少行日誌, 默認是all
    -t 顯示時間戳
    --until string 顯示自某個timestamp之前的日誌,或相對時間

    [root@test32 ~]# docker logs -f -t --tail=10 293915  
    [root@test32 ~]#  docker logs -t --since="2018-12-26T10:48Z" 293915             2018-12-26T10:48:00.605556000Z hello world
    2018-12-26T10:48:01.607088000Z hello world
    2018-12-26T10:48:02.608282000Z hello world
    2018-12-26T10:48:03.609575000Z hello world
    2018-12-26T10:48:04.610942000Z hello world
  • stop

    [root@test32 ~]#  docker stop 293915                                      
    293915
    [root@test32 ~]# docker ps -a    
    CONTAINER ID        IMAGE                                          COMMAND                  CREATED             STATUS                        PORTS                NAMES
    2939156e31bb        nginx                                          "/bin/sh -c 'while..."   16 minutes ago      Exited (137) 14 seconds ago                        youthful_hodgkin
  •  docker ps 查看容器名稱
  • docker: Docker 的二進制執行文件。
  • run:與上面的 docker 組合來運行一個容器
  • -d:讓容器在後臺運行。
  • 通過docker的兩個參數 -i -t,讓docker運行的容器實現"對話"的能力

    • -t:在新容器內指定一個僞終端或終端。
    • -i:允許你對容器內的標準輸入 (STDIN) 進行交互。
  •  -P 參數創建一個容器
  • 兩種方式的區別是:
  • -P :是容器內部端口隨機映射到主機的高端口。
  • -p : 是容器內部端口綁定到指定的主機端口 ,可以綁定多個端口。
    • docker run -d -P training/webapp python app.py
    • docker run -p 127.0.0.1:5000:5000/udp training/webapp python app.py
    • docker run --name test -d -p 4000:4000 -p 4050:80 training/webapp python app.py
  • 默認都是綁定 tcp 端口,如果要綁定 UDP 端口,可以在端口後面加上 /udp
  • docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubunt
  • 各個參數說明:
    • -m: 提交的描述信息
    • -a: 指定鏡像作者
    • e218edb10161:容器ID
    • runoob/ubuntu:v2: 指定要創建的目標鏡像名
  • docker build -t runoob/centos:6.7 .
    • -t : 指定要創建的目標鏡像名
    • . : Dockerfile 文件所在目錄,可以指定Dockerfile 的絕對路徑
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章