日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

docker create_Docker动手教程2.2:容器基本操作2

發(fā)布時(shí)間:2023/12/3 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 docker create_Docker动手教程2.2:容器基本操作2 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

內(nèi)容摘要

  • 暫停/取消暫停容器
  • 刪除容器
  • 進(jìn)入容器
  • 創(chuàng)建容器

暫停/取消暫停容器

暫停容器命令:

docker pause 容器ID/容器名

注意STATUS列,被暫停的容器的狀態(tài)依舊是“Up”,但是后面括號(hào)顯示為“Paused”。


取消暫停命令:

docker unpause 容器ID/容器名

可以看到STATUS列,狀態(tài)變?yōu)椤癠p”,沒有“Paused”字樣了。

從上面可以看出,暫停操作表示容器沒有退出,仍然在工作。暫停會(huì)減少CPU的使用,主機(jī)可以利用更多的計(jì)算資源。

在暫停的過程中,我們可以做很多操作,比如給容器文件系統(tǒng)建立快照,測(cè)試時(shí)查看日志等。


刪除容器

使用命令:

docker rm 容器ID/容器名

容器刪除報(bào)錯(cuò),從錯(cuò)誤信息可以看出,在刪除前,必須先停止容器,命令為:

docker stop 容器ID/容器名

停止容器后,容器刪除成功。


進(jìn)入容器

容器可以看成是一臺(tái)微型電腦,有自己獨(dú)立的文件系統(tǒng),環(huán)境變量等。因此,在容器運(yùn)行起來后,可以進(jìn)入容器內(nèi)部觀察。

進(jìn)入容器方式有兩種:

docker attach

docker attach 容器ID

容器ID可以是長ID或者短ID

運(yùn)行centos容器,進(jìn)入其中觀察:

進(jìn)入容器后發(fā)現(xiàn),每隔5秒輸出"hello docker"字符串,正好是運(yùn)行容器時(shí),使用while循環(huán)要求輸出的內(nèi)容。

可見,docker attach進(jìn)入容器后,正好是容器運(yùn)行時(shí)所用的同一終端,這點(diǎn)很重要。由于沒有啟動(dòng)新的終端,沒有啟動(dòng)新的進(jìn)程,這樣能節(jié)省資源。另外,如果我們想看容器啟動(dòng)時(shí)執(zhí)行命令的輸出信息,可以直接使用該命令。


docker exec

docker exec -it 容器ID bin/bash

-it 表示以交互模式打開終端,執(zhí)行/bin/bash命令。

可以看出執(zhí)行docker exec后,進(jìn)入容器的主機(jī)名是容器的短ID。

進(jìn)入后,可以執(zhí)行在主機(jī)上執(zhí)行的命令,如下:

運(yùn)行ps -elf查看進(jìn)程,可以看到輸出結(jié)果最后一行顯示當(dāng)前的ps命令,倒數(shù)第二行顯示的是容器運(yùn)行執(zhí)行的 sleep 5 指令;

pwd指令查看當(dāng)前工作目錄;

ls 查看根目錄下文件信息;

hostname指令查看容器主機(jī)名為容器短ID。

在主機(jī)上能夠運(yùn)行的指令也能夠在容器中執(zhí)行,可見容器相當(dāng)于一臺(tái)微型電腦。


問題:容器中的文件系統(tǒng)和主機(jī)是一樣的嗎?

我們?cè)谌萜髦袆?chuàng)建一個(gè)文件,并寫入內(nèi)容:

在根目錄 / 下創(chuàng)建 hello_world.txt 文件,并寫入 hello docker! 字符串。

接著使用 exit 命令退出容器,查看主機(jī)根據(jù)目錄下是否有該文件:

退出容器后,可以看到主機(jī)名變?yōu)?DOCKER ,不再是容器的短ID了,可見已經(jīng)從容器中退出來了。使用 ls 命令查看根目錄下的文件,沒有看到在容器中創(chuàng)建的 hello_world.txt 文件。

和docker exec相比,我們進(jìn)入容器后新打開了一個(gè)終端,不是容器運(yùn)行時(shí)使用的終端,因此無法看到容器運(yùn)行指令的輸出日志。


創(chuàng)建容器

前面講到的docker run 命令可以直接運(yùn)行一個(gè)容器,實(shí)際上該命令包括兩個(gè)命令,即docker create 和 docker start(下一節(jié)會(huì)講解):

新建兩個(gè)容器,分別以docker run 和 docker create 執(zhí)行,名字分別叫centos_run和centos_create,命令如下:

docker create --name docker_create centos /bin/bash -c "while true; do sleep 5; echo hello docker create; done"docker run -d --name docker_run centos /bin/bash -c "while true; do sleep 5; echo hello docker run; done"

從 docker ps -a 指令的輸出結(jié)果STATUS列可以看出:centos_run容器的狀態(tài)為Created,而centos_run容器的狀態(tài)為Up。

注意:兩個(gè)容器執(zhí)行指令輸出內(nèi)容不同,docker_run容器輸出 hello docker run,docker_create容器輸出 hello docker create。


問題:處于Created狀態(tài)的容器實(shí)際運(yùn)行起來了嗎?

可以通過 ps -elf 命令查看:

可以看到,只有centos_run容器的進(jìn)程存在,centos_create容器進(jìn)程不存在。

也就是說centos_create容器確實(shí)被創(chuàng)建了,但是沒有運(yùn)行。

對(duì)centos_create容器執(zhí)行docker start命令:

可以看出,執(zhí)行 docker start 命令后,centos_create 的狀態(tài)變?yōu)榱薝p。

總之,容器運(yùn)行被分解為了兩個(gè)動(dòng)作: create / start。


問題:處于Created狀態(tài)下的容器可以執(zhí)行 docker stop 操作嗎?

docker stop操作可以順利執(zhí)行,不過查看STATUS 列,狀態(tài)依然是Created,可見處于Created狀態(tài)下的容器做docker stop 操作沒有實(shí)際意義。


問題:處于Created狀態(tài)下的容器可以執(zhí)行 docker rm 操作嗎?

可見,是可以做這個(gè)操作的。

上面的內(nèi)容已經(jīng)涉及到容器的狀態(tài)和生命周期,下節(jié)會(huì)詳細(xì)講解容器的生命周期。


至此,容器的基本操作就講解完了,這些操作基本涵蓋了容器最常用的操作。

請(qǐng)大家按照本節(jié)的內(nèi)容,在阿里云ECS服務(wù)器上做實(shí)驗(yàn)。


實(shí)驗(yàn)

暫停容器

取消暫停容器

刪除容器

進(jìn)入容器

創(chuàng)建容器

總結(jié)

以上是生活随笔為你收集整理的docker create_Docker动手教程2.2:容器基本操作2的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。