Docker 入門學習(2)

Docker 入門學習(2)

1. Docker基本命令

  • 查看Docker程序是否正常
$ sudo docker info

返回所有容器和鏡像的數量、Docker使用的執行驅動和存儲驅動,以及Docker的基本配置。

  • 創建容器
$ sudo docker run -i -t ubuntu /bin/bash

-i:保證容器中STDIN是開啓的;-t:爲創建的容器提供一個僞tty終端。查看docker run所有標誌:

$ docker help run
  • 檢查容器主機名
root@...:/# hostname
  • 檢查容器的/etc/hosts文件
root@...:/# cat /etc/hosts
  • 檢查容器的網絡接口
root@.../# ifconfig
  • 檢查容器的進程
root@.../# ps -aux
  • 第一個容器中安裝軟件包
root@.../#apt-get update && apt-get install vim
  • 退出容器
root@.../#exit
  • 列出容器

    • 列出正在運行的容器
    $ docker ps
    
    • 列出所有容器
    $ docker ps -a
    
    • 顯示最後x個容器,無論正在運行還是停止
    $ docker ps -n x
    

    輸出包括:

    ID、用於創建容器的鏡像、容器最後執行的命令、創建時間以及退出狀態。

2. 管理Docker容器

  • 創建命名Docker
$ sudo docker run --name wtt_docker1 -i -t ubuntu /bin/bash
  • 刪除容器
$ docker rm <ID/NAMES>
  • 一次性刪除所有容器
$ sudo docker rm 'sudo docker ps -a -q'
  • 重新啓動已停止的容器

    • 通過NAMES啓動停止運行的容器
    $ sudo docker start <NAMES>
    
    • 通過ID啓動已經停止運行的容器
    $ sudo docker start <ID>
    
    • 使用restart
    $ docker restart <NAMES/ID>
    
  • 終止正在運行的容器

$ sudo docker stop <NAMES/ID>
  • 暫停容器
$ sudo docker pause <NAMES/ID>
  • 恢復已暫停容器
$ sudo docker unpause <NAMES/ID>
  • 清除容器

清除處於停止狀態的容器

$ sudo docker prune <NAMES/ID>
  • 強制終止
$ sudo docker kill <NAMES/ID>
  • 進入容器

使用-d參數時候,容器啓動會進入後臺,無法看到容器內信息,也無法進行操作,需要進入容器可以:

  1. 重新附着容器會話

Docker容器重啓時,會沿用docker run命令指定的參數運行,使用docker attach可以重新附着容器會話。

$ sudo docker attach <NAMES/ID>
  1. exec命令(推薦)

可以在容器內執行任意命令

$ sudo docker exec -it <ID> /bin/bash

指定-it會保持標準輸入打開,並分配一個僞終端。

  • 自動重啓容器
$ sudo docker run --restart=always --name wtt_long_time -d ubuntu /bin/sh -c "while true;do echo hello;sleep 1;done"

--restart被設置成always,無論容器的退出代碼是什麼,Docker都會重啓容器。

或者:

--restart=on-failure:5當容器退出代碼非0時,Docker會自動重啓該容器,最多重啓5次。

3. 守護式容器

守護式容器沒有交互式會話,適合運行應用程序和服務。

  • 創建長期運行的容器
$ sudo docker run --name wtt_long_time -d ubuntu /bin/sh -c "while true;do echo hello;sleep 1;done"

-d:Docker會將容器放到後臺運行。

  • 獲取守護式容器的日誌
$ sudo docker logs <NAMES/ID>
  • 跟蹤日誌
$ sudo docker logs -ft <NAMES/ID>

-f:跟蹤日誌;-t:爲每條日誌加上時間戳。

  • 查看容器內的進程
$ sudo docker top <NAMES/ID>
  • Docker統計信息
$ docker stats

輸出:

守護式容器列表、CPU、內存、網絡I/O及存儲I/O的性能和指標。

  • 容器內部運行進程
$ sudo docker exec -d wtt_long_time touch /etc/new_config_file

-d:運行一個後臺進程。touch /etc/new_config_file:創建空文件。

  • 容器內部運行交互命令
$ sudo docker exec -t -i wtt_long_time /bin/bash

4. 容器遷移

  1. 導出容器

導出一個已經創建的容器到一個文件

$ sudo docker export -o test.tar wtingting/apache2

或者

$ sudo docker export wtingting/apache2 > test.tar
  1. 導入容器快照
$ sudo docker import test.tar -test/ubuntu:v1.0

容器快照與鏡像存儲文件區別:

容器快照將丟棄所有的歷史記錄和元數據信息(即僅保存容器當時的快照狀態),可以重新指定標籤等元數據信息;

鏡像存儲文件將保存完整記錄,體積更大。

5. 其他容器命令

  1. 複製文件

在容器和主機之間複製文件。

$ sudo docker cp <文件路徑> <容器NAMES>:/tmp/
  1. 查看變更

查看容器內文件的變更

$ sudo docker diff <容器NAMES>
  1. 查看端口映射
$ sudo docker port <容器NAMES>
  1. 更新配置

更新容器的一些運行時配置,主要是一些資源限制份額。

$ sudo docker update <OPTIONS> <容器NAMES>
發佈了8 篇原創文章 · 獲贊 6 · 訪問量 3864
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章