docker[容器]命令(五)

目錄

1、什麼是容器 

2,演示前提

3,創建並啓動容器

3.1語法

3.2options說明

3.3交互式運行

4,列出當前所有正在運行的容器

4.1語法

4.2 options語法說明

5,退出容器

6,啓動容器

7,重啓容器

8,停止容器

9,強制停止容器

10,刪除已停止的容器

11,其它重點內容

1,啓用守護式容器

2,查看容器日誌

4,查詢容器內部細節

5,進入正在進行的容器並以命令行交互

6,進入容器內拷貝文件到主機

12,命令總結                           ​


1、什麼是容器 

 容器鏡像是一個軟件的輕量級獨立可執行軟件包,包含運行它所需的一切:代碼,運行時,系統工具,系統庫,設置。不管環境如何,集裝箱化軟件都可以運行相同的Linux和Windows應用程序。容器將軟件與其周圍環境隔離開來,例如開發環境和生產環境之間的差異,並有助於減少在同一基礎架構上運行不同軟件的團隊之間的衝突。

                                           

1.輕量級 

在一臺機器上運行的Docker容器共享該機器的操作系統內核; 他們立即開始並使用更少的計算和內存。圖像由文件系統層構建並共享公用文件。這最大限度地減少了磁盤使用量,圖像下載速度更快。 

2.標準 

Docker容器基於開放標準,可在所有主要Linux發行版,Microsoft Windows以及任何基礎架構(包括虛擬機,裸機和雲中)上運行。 

3.安全 

Docker容器將應用程序彼此隔離並從底層基礎架構中分離出來。Docker提供了最強大的默認隔離功能,可以將應用程序問題限制在一個容器中,而不是整個機器上。

 

 
 

2,演示前提

    有鏡像才能創建容器,這個是根本要求(下載centos鏡像來演示)

    docker pull centos

 

 
 

3,創建並啓動容器

3.1語法

docker run [options] images [command][args] 

3.2options說明

有些是一個減號,有些是兩個減號

--name="容器新名字": 爲容器指定一個名稱;

-d: 後臺運行容器,並返回容器ID,也即啓動守護式容器;

-i:以交互模式運行容器,通常與 -t 同時使用;

-t:爲容器重新分配一個僞輸入終端,通常與 -i 同時使用;

-P: 隨機端口映射;

-p: 指定端口映射,有以下四種格式

      ip:hostPort:containerPort

      ip::containerPort

      hostPort:containerPort

      containerPort

3.3交互式運行

#使用鏡像centos:latest以交互模式啓動一個容器,在容器內執行/bin/bash命令。
docker run -it centos /bin/bash 

 

 
 

4,列出當前所有正在運行的容器

4.1語法

docker ps [options]

4.2 options語法說明

-a :列出當前所有正在運行的容器+歷史上運行過的

-l :顯示最近創建的容器。

-n:顯示最近n個創建的容器。

-q :靜默模式,只顯示容器編號。

--no-trunc :不截斷輸出。

 

 
 

5,退出容器

1,exit:停止容器並退出

2,ctrl+P+Q  容器不停止退出(僅僅是退出終端,但還在運行着)

 

 
 

6,啓動容器

docker start 容器ID或容器名稱

 

 
 

7,重啓容器

docker restart 容器ID或容器名稱

 
 

 

8,停止容器

docker stop 容器ID或容器名稱

 

 
 

9,強制停止容器

docker kill 容器ID或容器名稱

 
 

 

10,刪除已停止的容器

  #單個刪除

docker rm 容器ID
#多個刪除
docker rm -f $(docker ps -aq)
docker ps -aq xargs docker rm
 
 

 

11,其它重點內容

1,啓用守護式容器

#使用鏡像centos:latest以後臺模式啓動一個容器

docker run -d centos

問題:docker ps -a 進行查看, 會發現容器已經退出

很重要的要說明的一點: Docker容器後臺運行,就必須有一個前臺進程.

容器運行的命令如果不是那些一直掛起的命令(比如運行top,tail),就是會自動退出的。

這個是docker的機制問題,比如你的web容器,我們以nginx爲例,正常情況下,我們配置啓動服務只需要啓動是應的service即可。例如  service nginx start

但是,這樣做,nginx爲後臺進程模式運行,就導致docker前臺沒有運行的應用,

這樣的容器後臺啓動後,會立即自殺因爲他覺得他沒事可做了.

所以,最佳的解決方案是,將你要運行的程序以前臺進程的形式運行

2,查看容器日誌

如果是後臺運行的程序,那麼如何查看運行的日誌呢?

1,先運行一個程序  在後臺被隔兩秒輸出[hello laolei]

 docker run -d centos /bin/sh -c "while true;do echo hello laolei;sleep 2;done"

2,查看日誌

docker logs -tf --tail 10 容器ID
*   -t 是加入時間戳
*   -f 跟隨最新的日誌打印
*   --tail 數字 顯示最後多少條

3,查看容器運行進程 

docker top 容器ID

 

4,查詢容器內部細節

docker inspect 容器ID

 

5,進入正在進行的容器並以命令行交互

#方式1
docker exec -it 容器ID /bin/bash
#方式2
docker attach 容器ID
#兩種方式的區別
exec 在容器中打開新的終端(就跟在windows的運行tomcat中的startup.sh一樣) 並且可以啓動新的進程
attch 直接進行容器終端(就跟在windows的cmd運行tomcat一樣),不會啓動新的進程

 

6,進入容器內拷貝文件到主機

docker cp 容器ID:容器內的路徑  主機目錄

 

12,命令總結

                             

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