容器基本操作

容器是 Docker 的另一個(gè)核心概念。 簡(jiǎn)單來說,容器是鏡像的一個(gè)運(yùn)行實(shí)例。所不同的是,鏡像是靜態(tài)的只讀文件,而容器帶有運(yùn)行時(shí)需要的可寫文件層,同時(shí),容器中的應(yīng)用進(jìn)程處于運(yùn)行狀態(tài)

如果認(rèn)為虛擬機(jī)是模擬運(yùn)行的一整套操作系統(tǒng)(包括內(nèi)核、 應(yīng)用運(yùn)行態(tài)環(huán)境和其他系統(tǒng)環(huán)境)和跑在上面的應(yīng)用。 那么 Docker 容器就是獨(dú)立運(yùn)行的一個(gè)(或一組)應(yīng)用,以及它們必需的運(yùn)行環(huán)境。

5.1 創(chuàng)建容器

  1. 獲取centos:7.5.1804的鏡像

docker pull centos:7.5.1804

image.png
  1. 創(chuàng)建容器

docker create -i -t centos:7.5.1804 /bin/bash

image.png

說明:

I. 創(chuàng)建一個(gè)交互式的容器

II. -i: 允許你對(duì)容器內(nèi)的標(biāo)準(zhǔn)輸入 (STDIN) 進(jìn)行交互

III. -t: 在新容器內(nèi)指定一個(gè)偽終端或終端。

  1. 啟動(dòng)容器

docker start bcc

image.png
  1. 新建并啟動(dòng)容器

前面的操作是先創(chuàng)建容器, 然后再啟動(dòng)容器. 也可以使用run來直接新建并啟動(dòng)容器

啟動(dòng)一個(gè)交互式的centos容器

docker run -it centos:7.5.1804 /bin/bash

說明:

  1. 檢查本地是否存在指定的鏡像,不存在就從公有倉(cāng)庫(kù)下載;

  2. 利用鏡像創(chuàng)建一個(gè)容器,并啟動(dòng)該容器;

  3. 分配一個(gè)文件系統(tǒng)給容器,并在只讀的鏡像層外面掛載一層可讀寫層 ;

  4. 查看有哪些容器

  5. 查看啟動(dòng)的容器

docker ps

image.png
  1. 查看所有容器

docker ps -a

image.png
  1. 啟動(dòng)后臺(tái)容器進(jìn)程

docker run -itd centos:7.5.1804 /bin/bash

5.2 停止容器

docker stop bcc

image.png

5.3 進(jìn)入容器

在使用 -d 參數(shù)時(shí),容器啟動(dòng)后會(huì)進(jìn)入后臺(tái)(有些容器默認(rèn)就是后臺(tái), 比如centos容器)。此時(shí)想要進(jìn)入容器,可以通過以下指令進(jìn)入:

docker exec -it bcc /bin/bash

image.png

通過指定 -it參數(shù)來保持標(biāo)準(zhǔn)輸入打開, 并且分配一個(gè)偽終端??梢钥吹綍?huì)打開一個(gè)新的 bash 終端,在不影響容器內(nèi)其他應(yīng)用的前提下,用戶可以與容器進(jìn)行交五。

5.4 刪除容器

  1. 刪除已經(jīng)停止的容器

docker rm ea5c

image.png
  1. 刪除正在運(yùn)行的容器

先停止, 再刪除

docker rm -f bcc


image.png

5.5 導(dǎo)入和導(dǎo)出容器

某些時(shí)候,需要將容器從一個(gè)系統(tǒng)遷移到另外一個(gè)系統(tǒng),此時(shí)可以使用 Docker 的導(dǎo)人 和導(dǎo)出功能,這也是 Docker 自身提供的一個(gè)重要特性。

為了測(cè)試容器是否導(dǎo)出和導(dǎo)入成功, 我們?cè)赾entos容器中創(chuàng)建一個(gè)新的文件

image.png

5.5.1 導(dǎo)出容器

導(dǎo)出容器是指,導(dǎo)出一個(gè)已經(jīng)創(chuàng)建的容器到一個(gè)文件,不管此時(shí)這個(gè)容器是否處于運(yùn)行狀態(tài).

docker export -o '/home/atguigu/test_for_centos.tar' 9fa

image.png

可以把導(dǎo)出的tar文件, 傳輸?shù)狡渌O(shè)備, 再通過導(dǎo)入命令導(dǎo)入, 實(shí)現(xiàn)容器的遷移.

5.5.2 導(dǎo)入容器

將上節(jié)導(dǎo)出的容器導(dǎo)入之后會(huì)成為鏡像.

docker import test_for_centos.tar -- test/mycentos:1.0

image.png

使用新的鏡像啟動(dòng)容器:

image.png

剛才創(chuàng)建的文件還在

5.6 查看容器

5.6.1 查看容器詳情

docker container inspect 9fa

會(huì)以 json 格式返回包括容器 Id、創(chuàng)建時(shí)間、路徑、狀態(tài)、鏡像、配置等在內(nèi)的各項(xiàng)信息


image.png

5.6.2 查看容器內(nèi)進(jìn)程

docker top 9fa

這個(gè)子命令類似于 Linux 系統(tǒng)中的 top 命令, 會(huì)打印出容器內(nèi)的進(jìn)程信息, 包括 PID 、 用戶、時(shí)間、命令等

image.png

5.6.3 查看統(tǒng)計(jì)信息

docker stats --no-stream 9fa

會(huì)顯示 CPU 、內(nèi)存、存儲(chǔ)、網(wǎng)絡(luò)等使用情況的統(tǒng)計(jì)信息

image.png

5.7 容器和主機(jī)之間復(fù)制文件

容器和主機(jī)之間進(jìn)行文件復(fù)制的時(shí)候, 要保證容器已經(jīng)啟動(dòng).

5.7.1 從主機(jī)復(fù)制到容器

docker cp test.txt 9fa:/

image.png

5.7.2 從容器復(fù)制到主機(jī)

docker cp 9fa:/a.txt ./

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容