深入了解 Docker 容器操作命令:掌握容器化管理的關(guān)鍵
Docker 已經(jīng)成為現(xiàn)代應(yīng)用程序開(kāi)發(fā)和部署的行業(yè)標(biāo)準(zhǔn)。它借助容器化技術(shù),提供了一種輕量、可移植和可擴(kuò)展的方式來(lái)構(gòu)建、發(fā)布和運(yùn)行應(yīng)用程序。然而,最近我在工作中發(fā)現(xiàn),一些家人們對(duì) Docker 容器的操作命令還不太熟悉。因此,本文旨在深入介紹 Docker 容器操作的各個(gè)方面,包括對(duì)每個(gè)命令及其參數(shù)的詳細(xì)解釋。希望通過(guò)這篇文章,我們可以一起探討和學(xué)習(xí),進(jìn)一步提高對(duì) Docker 的理解和應(yīng)用能力。
創(chuàng)建容器
創(chuàng)建容器有兩種方式docker run 和 docker creat
docker run
docker run 命令首先會(huì)在 Docker 主機(jī)上查找指定的容器鏡像。如果鏡像不存在,Docker 將從 Docker Hub 或其他鏡像倉(cāng)庫(kù)下載它。一旦找到或下載了鏡像,Docker 將根據(jù)該鏡像創(chuàng)建一個(gè)新的容器實(shí)例。一旦容器創(chuàng)建完成,docker run 命令將會(huì)啟動(dòng)容器。
docker run 命令的基本語(yǔ)法如下:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]- OPTIONS:可選參數(shù),用于配置容器的各種屬性。
- IMAGE:必需參數(shù),指定要運(yùn)行的容器鏡像。
- COMMAND:可選參數(shù),覆蓋容器中定義的默認(rèn)命令。
- ARG...:可選參數(shù),傳遞給容器中的命令的參數(shù)。
下面是一些常見(jiàn)的 docker run 參數(shù)和選項(xiàng):
- -i 或 --interactive:以交互模式運(yùn)行容器,允許用戶輸入。
- -t 或 --tty:分配偽終端 (pseudo-TTY),通常與 -i 一起使用以支持交互性。
- -d 或 --detach:以后臺(tái)模式運(yùn)行容器,不占用當(dāng)前終端。
- --name:為容器指定一個(gè)名稱。
- --rm:容器停止后自動(dòng)刪除容器。
- -e 或 --env:設(shè)置環(huán)境變量。
- -p 或 --publish:將容器端口映射到主機(jī)端口。
- -v 或 --volume:掛載主機(jī)文件或目錄到容器中。
- --network:指定容器連接的網(wǎng)絡(luò)。
- --link:連接到另一個(gè)容器。
- --entrypoint:覆蓋容器中定義的默認(rèn)入口點(diǎn)。
- --restart: Docker 容器的重啟策略的選項(xiàng)。
例如,要以交互式終端模式運(yùn)行一個(gè)名為 xj_pandora 的容器,使用xj/pandora:1. 鏡像,可以運(yùn)行以下命令:
docker run -itd -p 8899:8899 --name xj_pandora -e PUID=0 -e PGID=0 -e PANDORA_SERVER=0.0.0.0:8899 -e PANDORA_CLOUD=cloud -e TZ=Asia/Shanghai --restart=always xj/pandora:1.0- docker creatdocker create 命令不是一個(gè)常用的命令,而且它通常與其他命令一起使用。docker create 的主要作用是創(chuàng)建一個(gè)新的容器,但并不啟動(dòng)該容器。它返回容器的唯一標(biāo)識(shí)符(容器ID),然后你可以使用其他命令來(lái)進(jìn)一步配置和啟動(dòng)這個(gè)容器。
以下是 docker create 命令的基本語(yǔ)法和選項(xiàng):
docker create [OPTIONS] IMAGE [COMMAND] [ARG...]- OPTIONS:可選參數(shù),用于配置容器的各種屬性。
- IMAGE:必需參數(shù),指定要使用的容器鏡像。
- COMMAND:可選參數(shù),覆蓋容器中定義的默認(rèn)命令。
- ARG...:可選參數(shù),傳遞給容器中的命令的參數(shù)。
它的參數(shù)和選項(xiàng)和docker run 大同小異
啟動(dòng)、停止和刪除容器
- 啟動(dòng)容器
已創(chuàng)建的容器可以使用 docker start 命令啟動(dòng):
docker start container_name/container_iddocker restart 命令重啟容器
docker restart container_name/container_id- 停止容器
停止容器使用 docker stop 命令::
docker stop container_name/container_id- 刪除容器
使用 docker rm 命令可以刪除一個(gè)或多個(gè)停止的容器:
docker rm container_name/container_id查看容器
要查看當(dāng)前運(yùn)行的容器,可以使用 docker ps 命令:
docker ps如果要查看所有容器,包括已停止的容器,可以使用 docker ps -a 命令:
docker ps -a
圖片
進(jìn)入容器
基本語(yǔ)法:
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]- OPTIONS:可選參數(shù),用于配置執(zhí)行命令的方式。
- CONTAINER:必需參數(shù),指定要執(zhí)行命令的容器名稱或容器ID。
- COMMAND:要在容器內(nèi)執(zhí)行的命令。
- ARG...:命令的參數(shù),可以包含多個(gè)。
以下是一些常見(jiàn)的 docker exec 參數(shù)和選項(xiàng):
- -i 或 --interactive:以交互模式運(yùn)行命令,通常與 -t 一起使用以支持交互性。
- -t 或 --tty:分配偽終端 (pseudo-TTY),通常與 -i 一起使用。
- --user:指定執(zhí)行命令的用戶或用戶ID。
- --env:設(shè)置環(huán)境變量。
- --workdir:指定執(zhí)行命令的工作目錄。
- --privileged:以特權(quán)模式執(zhí)行命令,具有更高的權(quán)限。
要進(jìn)入運(yùn)行中的容器并執(zhí)行命令,可以使用 docker exec 命令。例如,要進(jìn)入一個(gè)名為 xj_pandora 的容器并啟動(dòng) Bash 終端:
docker exec -it cdf3be3e078a /bin/bash
圖片
拷貝文件
使用 docker cp 命令可以將文件復(fù)制到容器內(nèi)部或從容器內(nèi)部復(fù)制文件到主機(jī)。
復(fù)制容器中的文件到宿主機(jī):
docker cp cdf3be3e078a:/opt/app/requirements.txt .
圖片
復(fù)制宿主機(jī)中的文件到容器:
docker cp ./test.txt cdf3be3e078a:/opt/app/
圖片
導(dǎo)出和導(dǎo)入容器
你可以使用 docker export 命令將容器導(dǎo)出為一個(gè)文件,然后使用 docker import 命令將文件導(dǎo)入為一個(gè)新的鏡像。這對(duì)于分享容器快照或遷移容器非常有用。
docker export -o xj_container.tar xj_container_name
docker import xj_container.tar xj_new_image查看容器日志
docker logs 命令用于查看 Docker 容器的日志輸出。它允許你查看容器內(nèi)運(yùn)行的應(yīng)用程序的標(biāo)準(zhǔn)輸出(stdout)和標(biāo)準(zhǔn)錯(cuò)誤輸出(stderr)。以下是 docker logs 命令的基本語(yǔ)法和詳細(xì)解釋:
docker logs [OPTIONS] CONTAINER- OPTIONS:可選參數(shù),用于配置日志輸出的方式。
- CONTAINER:必需參數(shù),指定要查看日志的容器名稱或容器ID。
以下是一些常見(jiàn)的 docker logs 參數(shù)和選項(xiàng):
- -f 或 --follow:實(shí)時(shí)跟蹤容器日志的輸出,類似于 tail -f 命令。
- --since:僅顯示在指定的時(shí)間之后生成的日志。
- --until:僅顯示在指定的時(shí)間之前生成的日志。
- --timestamps:顯示日志條目的時(shí)間戳。
- --tail:僅顯示最后幾行日志,默認(rèn)為所有日志。
- --details:顯示更多的詳細(xì)日志信息,如容器的標(biāo)準(zhǔn)錯(cuò)誤輸出。
例如實(shí)時(shí)輸出容器pandora-pandora-1 的日志:
docker logs -f pandora-pandora-1
圖片
總結(jié)
Docker 容器操作命令是容器化應(yīng)用程序開(kāi)發(fā)和管理的關(guān)鍵工具。通過(guò)深入了解這些命令的語(yǔ)法和用途,你可以更好地管理和監(jiān)控容器,確保你的應(yīng)用程序能夠順利運(yùn)行。無(wú)論是創(chuàng)建容器、查看日志、監(jiān)控資源使用還是進(jìn)入容器內(nèi)部,這些命令都為容器化管理提供了強(qiáng)大的支持。希望本文對(duì)你在 Docker 容器操作方面提供了有用的信息和指導(dǎo)。


























