溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Docker的管理操作有哪些

發(fā)布時間:2021-12-13 15:24:55 來源:億速云 閱讀:128 作者:iii 欄目:云計算

本篇內容主要講解“Docker的管理操作有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Docker的管理操作有哪些”吧!

容器是一個打包了應用和服務的環(huán)境。它是一個輕量級的虛擬機,每一個容器都由一組特定的應用和必要的依賴組成。

特別說明:在windows上使用git-bash來運行docker命令時,如果使用了-i -t參數(shù)會報錯:

$ docker run -it --name my docker.io/centos
the input device is not a TTY.  If you are using mintty, try prefixing the command with 'winpty'

錯誤信息已明確說明要使用winpty來運行。即:

winpty docker run -it --name my docker.io/centos

1、容器的管理操作

1.1創(chuàng)建容器

對于容器常見的命令包括:創(chuàng)建、查看、啟動、終止(停止)、刪除。

創(chuàng)建容器可以使用docker create和docker run,它們的區(qū)別是,docker create創(chuàng)建容器完成后,容器處于停止狀態(tài),而docker run創(chuàng)建容器后同時啟動容器(相當于執(zhí)行了:docker create -> docker start)。

docker create 鏡像名稱

比如:docker create ubuntu  //不帶 “:版本號” 時將使用官方最新的鏡像。

使用docker ps 可以查看當前正在運行的容器,使用docker ps -a 可以查看所有容器,包括運行中和未運行的容器。

docker run 可以創(chuàng)建交互型容器和后臺型容器。

docker run -i -t --name=inspect_shell ubuntu /bin/bash //將創(chuàng)建交互型容器

docker run -d --name=daemon_while ubuntu /bin/bash -c 
"while true;do echo hello world;sleep 1;done" //將創(chuàng)建后臺型容器

上面--name參數(shù)的名稱必須是唯一的不能重復。

創(chuàng)建容器時首先會搜索本地是否存在該鏡像,如果不存在就從公有倉庫下載,否則直接使用本地鏡像創(chuàng)建容器,容器的文件系統(tǒng)是在只讀的鏡像文件上增加一層可讀寫的文件層,并通過網橋的方式將該網絡接口橋接到宿主主機上去,然后該虛擬網絡接口分配一個IP地址。

1.2 查看容器

使用docker ps 命令即可,可以跟不同的參數(shù),具體使用查看幫助即可:docker ps --help

docker ps  //只查看當前運行中的容器

docker ps -l  //列出最后創(chuàng)建的容器

docker ps -n=x  //查看最后創(chuàng)建的x個容器

結果中的狀態(tài)是Exited時,括號時的數(shù)字為0時正常退出,其它值都為異常退出。

1.3啟動容器

通過docker run 創(chuàng)建的容器直接進行運行狀態(tài),而使用docker create創(chuàng)建的容器需要使用docker start來啟動它。

docker start 容器ID或容器名稱

docker run --restart=always  --name docker_restart -d ubuntu /bin/sh -c 
"while rue;do echo hello world;sleep 1;done"

docker run ubuntu echo "Hello docker" //此容器輸出后馬上就停止了
docker ps -a 可以查看到容器的ID和名稱,要想再次啟動此容器而不是創(chuàng)建一個新的容器可以使用下面的方式:
docker start -i 容器ID //多了個-i參數(shù),表明輸出到終端,如果不帶-i參數(shù)是看不到Hello docker輸出的。

restart為always是不管容器返回碼是什么都會嘗試重啟容器,另外可以設置成--restart=on-failure:5 來設置非0返回碼時重啟嘗試的次數(shù)。

1.4終止容器

正常退出容器使用 docker stop 容器名稱或容器ID,另外可以使用docker kill 強制退出容器。

docker stop 容器名稱或容器ID
docker kill 容器名稱或容器ID

1.5刪除容器

docker rm 容器ID或容器名稱 //只能刪除未運行的容器

docker rm -f 容器ID或容器名稱 //強制刪除,運行中的容器可將刪除

docker rm `docker ps -a -q` //批量刪除所有容器,-q參數(shù)只列出容器的ID

2、容器內信息獲取和命令執(zhí)行

2.1依附容器

依附容器命令只能用在交互型容器中,就是以 -i -t 參數(shù)運行的容器,可以依附若干的終端,而且多個終端操作是同步的,就是你在其中一個終端輸入了什么,在其它的終端也將顯示什么,退中一個終端使用exit退出,所有依附的終端都將退出。

docker run -i -t ubuntu /bin/sh

然后再開另一個終端使用

docker attach ubuntu 
//即可以進入交互界面,這樣就會有兩個終端,而且是同步的。此命令目前輸入完后必須按兩次回車才正常出現(xiàn)交互界面。

后臺型容器是無法使用此命令依賴終端的。

ps:如果只是要進入到運行中的容器,而且容器也不一定是使用 -i -t運行的,可以使用下面的命令:

docker exec -it 容器ID或名稱 bash

2.2查看容器日志

交互型容器可臺通過依附命令直接進入查看日志,而后臺型容器可以通過docker logs 命令來查看容器日志。

docker run -d --name =daemon_logs ubuntu /bin/bash -c "for((i=0;1;i++));do echo $i;sleep 1;done;" 
//注意這里要使用雙引號

docker logs -f deamon_logs //-f 實時查看容器日志

docker logs -f --tail=x daemon_logs //只實時查看最后x行日志

docker logs -f --tail=5 -t daemon_logs //-t查看日志產生的時間

 2.3查看容器進程

docker top可以查看容器內正在運行的進程

docker top 容器ID或容器名稱

 2.4查看容器信息

docker inspect用于查看容器的配置信息,包括容器名稱、環(huán)境變量、運行命令、主機配置、網絡配置和數(shù)據卷配置等。

docker inspect 容器ID或容器名稱

詳細使用可以查看幫助,docker inspect --help

2.5容器內執(zhí)行命令

在容器啟動的時候,通常需要指定需要執(zhí)行的程序,然而有時候我們需要在容器運行之后中途啟動另一個程序 。從Docker 1.3開始,我們可以使用docker exec命令在容器中運行新的任務。它可以創(chuàng)建兩種任務:后臺型任務和交互型任務。

docker exec -d daemon_dave touch /etc/new_config_file //后臺型任務

docker exec -i -t daemon_dave /bin/bash //交互型任務,這個和創(chuàng)建交互型容器一樣。

注意:運行此命令容器都必須是運行中

 3、容器的導入和導出

用戶不僅可以把容器提交到公共服務器上,也可以將容器導出到本地文件系統(tǒng)中,再需要的時候可以重新導入到Docker運行環(huán)境中。

容器導出:

docker run -i -t --name=inspect_import ubuntu /bin/bash

然后對容器按需要修改,安裝需要的軟件等,完成后執(zhí)行下面的命令導出到本地系統(tǒng)中。

docker export inspect_import > my_container.tar

容器導入:

cat my_container.tar |docker import - imported:container
//imported為鏡像名稱,container為鏡像標簽(tag)

還可以從url導入網絡上的容器:
docker import url res:tag

導入成功后,使用docker images 命令可以查看導入的鏡像。

到此,相信大家對“Docker的管理操作有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI