最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

docker進(jìn)入容器運(yùn)行命令的使用及說明

 更新時間:2026年02月03日 16:44:40   作者:A_aspectJ項(xiàng)目開發(fā)  
本文介紹了如何使用Docker進(jìn)入容器進(jìn)行調(diào)試、管理和運(yùn)行命令,主要包括使用docker exec、docker attach和nsenter命令進(jìn)入容器的方法,并詳細(xì)介紹了docker inspect命令的使用以及如何獲取容器/鏡像的元數(shù)據(jù)

前言

Docker是一種流行的容器化平臺,它能夠快速構(gòu)建、交付和運(yùn)行應(yīng)用程序。在使用Docker時,我們經(jīng)常需要進(jìn)入容器進(jìn)行調(diào)試、管理和運(yùn)行命令等操作。

進(jìn)入 docker 容器需要執(zhí)行以下步驟:打開終端窗口。使用 docker ps 命令查看正在運(yùn)行的容器。使用 docker exec -it /bin/bash 命令進(jìn)入容器,在容器內(nèi)執(zhí)行命令,使用 exit 命令退出容器。

一、使用docker exec進(jìn)入Docker容器

進(jìn)入 Docker 容器的步驟很簡單,只需一條命令即可完成:

要在Docker容器中運(yùn)行命令,您可以使用docker exec命令。這里是一個基本的例子:

docker exec -it <container_id_or_name> <command>

其中<container_id_or_name>是您想要運(yùn)行命令的容器的ID或名稱,<command>是您想要執(zhí)行的命令。

例如,如果您想要在名為mycontainer的容器中執(zhí)行bash shell,您可以使用:

docker exec -it mycontainer bash

如果您想要在容器中運(yùn)行一個不需要交互的命令,比如查看容器中的某個文件,您可以直接執(zhí)行:

docker exec mycontainer cat /path/to/file

這將在mycontainer容器中執(zhí)行cat /path/to/file命令,并將結(jié)果直接輸出到您的終端。

其他命令提示說明:

識別容器名稱:使用以下命令查看正在運(yùn)行的容器列表:

 docker ps

這將輸出容器名稱、鏡像名稱、啟動時間等信息。

執(zhí)行 exec 命令:使用 docker exec 命令進(jìn)入容器。例如,要進(jìn)入名為 "my-container" 的容器,可以使用以下命令:

docker exec -it my-container /bin/bash
  • -i 選項(xiàng)表示在容器中打開一個交互式會話。
  • -t 選項(xiàng)表示為會話分配一個偽tty。
  1. /bin/bash 命令:/bin/bash 命令在容器中啟動一個 bash 會話。
  2. 提示符:成功進(jìn)入容器后,您將在命令提示符中看到 root@。這表示您現(xiàn)在已作為 root 用戶登錄到容器中。
  3. 執(zhí)行命令:您現(xiàn)在可以在容器內(nèi)執(zhí)行命令,就像在普通 Linux 系統(tǒng)中一樣。
  4. 退出容器:要退出容器,只需鍵入 exit 命令即可。

二、使用docker attach進(jìn)入Docker容器

接下來我們創(chuàng)建一個守護(hù)態(tài)的Docker容器,然后使用docker attach命令進(jìn)入該容器。

$ sudo docker run -itd ubuntu:xx.xx /bin/bash  

 然后我們使用docker ps查看到該容器信息,接下來就使用docker attach進(jìn)入該容器

$ sudo docker attach container_id

 可以看到我們已經(jīng)進(jìn)入到該容器中了。但是,使用該命令有一個問題,當(dāng)多個窗口同時使用該命令進(jìn)入該容器時,所有的窗口都會同步顯示。如果有一個窗口阻塞了,那么其他窗口也無法再進(jìn)行操作。

因?yàn)檫@個原因,所以docker attach命令不太適合于生產(chǎn)環(huán)境,平時自己開發(fā)應(yīng)用時可以使用該命令。

通常情況下,需要查看docker容器內(nèi)stdout,會使用命令 docker attach container_id 來查看容器輸出.但是不知道如何退出,使用Ctrl+c直接卡死。正確的退出方式應(yīng)該用一個組合鍵 Ctrl+p Ctrl+q 然后容器會關(guān)閉,界面也可恢復(fù)。

三、使用nsenter進(jìn)入Docker容器。

nsenter是用來進(jìn)入容器內(nèi)部的一個命令,它的優(yōu)勢之處在于可以自己選擇加載容器的哪些namespaces

可以直接選擇yum安裝

$ yum install util-linux -y

也可以選擇源碼安裝 

系統(tǒng)默認(rèn)將我們需要的nsenter安裝到主機(jī)中

如果沒有安裝的話,按下面步驟安裝即可(注意是主機(jī)而非容器或鏡像)

具體的安裝命令如下:

$ wget https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz  
$ tar -xzvf util-linux-2.24.tar.gz  
$ cd util-linux-2.24/  
$ ./configure --without-ncurses  
$ make nsenter  
$ sudo cp nsenter /usr/local/bin 

 安裝好nsenter之后可以查看一下該命令的使用。先使用--help查看一下nsenter的幫助信息

 ?$ nsenter --help

 用法:
  nsenter [options] <program> [<argument>...]
 ?
 Run a program with namespaces of other processes.
 ?
 選項(xiàng):
  -t, --target <pid>     要獲取名字空間的目標(biāo)進(jìn)程
  -m, --mount[=<file>]   enter mount namespace
  -u, --uts[=<file>]     enter UTS namespace (hostname etc)
  -i, --ipc[=<file>]     enter System V IPC namespace
  -n, --net[=<file>]     enter network namespace
  -p, --pid[=<file>]     enter pid namespace
  -U, --user[=<file>]    enter user namespace
  -S, --setuid <uid>     set uid in entered namespace
  -G, --setgid <gid>     set gid in entered namespace
  --preserve-credentials do not touch uids or gids
  -r, --root[=<dir>]     set the root directory
  -w, --wd[=<dir>]       set the working directory
  -F, --no-fork          執(zhí)行 <程序> 前不 fork
  -Z, --follow-context   set SELinux context according to --target PID
 ?
  -h, --help     顯示此幫助并退出
  -V, --version  輸出版本信息并退出

 可以看到選項(xiàng)很多,但是大致上都是進(jìn)入某個namespace

 --mount參數(shù)是進(jìn)去到mount namespace中
 --uts參數(shù)是進(jìn)入到uts namespace中
 --ipc參數(shù)是進(jìn)入到System V IPC namaspace中
 --net參數(shù)是進(jìn)入到network namespace中
 --pid參數(shù)是進(jìn)入到pid namespace中
 --user參數(shù)是進(jìn)入到user namespace中

nsenter可以訪問另一個進(jìn)程的名稱空間。所以為了連接到某個容器我們還需要獲取該容器的第一個進(jìn)程的PID??梢允褂胐ocker inspect命令來獲取該P(yáng)ID。

四、docker inspect命令使用

$ sudo docker inspect --help  

 inspect命令可以分層級顯示一個鏡像或容器的信息。使用docker ps 查看我們當(dāng)前有一個正在運(yùn)行的容器,可以使用docker inspect來查看該容器的詳細(xì)信息。

$ sudo docker inspect container_id

 如果要顯示該容器第一個進(jìn)程的PID可以使用如下方式

$ sudo docker inspect -f {{.State.Pid}} container_id

在獲取到該進(jìn)程PID之后我們就可以使用nsenter命令訪問該容器了。

$ sudo nsenter --target PID --mount --uts --ipc --net --pid  

五、docker inspect : 獲取容器/鏡像的元數(shù)據(jù)。

語法

docker inspect [OPTIONS] NAME|ID [NAME|ID...]

OPTIONS說明:

  • -f :指定返回值的模板文件。
  • -s :顯示總的文件大小。
  • --type :為指定類型返回JSON。

實(shí)例

獲取鏡像mysql:5.6的元信息。(展示部分信息)

命令:

xx@xx:~$ docker inspect mysql:5.6
[
    {
        "Id": "xx",
        "RepoTags": [
            "mysql:5.6"
        ],
        "RepoDigests": [],
        "Parent": "",
        "Comment": "",
        "Created": "xx",
        "Container": "xx",
        "ContainerConfig": {
            "Hostname": "xx",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "3306/tcp": {}
            },
...

獲取正在運(yùn)行的容器mysql02的 IP。

xx@xx:~$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mysql02

Docker 常用的命令集

  • docker version: 顯示Docker版本
  • docker info: 顯示Docker信息
  • docker attach: 掛載正在后臺運(yùn)行的容器到前臺
  • docker run: 在一個新的容器中執(zhí)行命令 (Ctrl+p CTRL+q 退出至后臺運(yùn)行)
  • docker ps: 列出當(dāng)前容器
  • docker images: 列出當(dāng)前鏡像
  • docker logs: 顯示容器的日志
  • docker inspect: 顯示鏡像或容器的詳細(xì)信息
  • docker stop: 停止運(yùn)行中的容器 (Ctrl+d 強(qiáng)制退出, exited (0)表示正常退出)
  • docker kill: 殺掉一個運(yùn)行中的容器 (exited (-1)表示異常退出)
  • docker start: 重啟停止的容器
  • docker restart: 重啟運(yùn)行中的容器
  • docker cp: 拷貝容器中的文件
  • docker rm: 刪除容器
  • docker top: 查看容器輸出
  • docker events: 實(shí)時監(jiān)聽容器的事件
  • docker history: 顯示鏡像的歷史記錄
  • docker pull: 從遠(yuǎn)程拉取鏡像
  • docker diff: 列出鏡像中文件和目錄的變化
  • docker commit: 將容器打包成新的鏡像
  • docker build: 使用Dockerfile構(gòu)建新鏡像
  • docker tag: 為鏡像加上標(biāo)簽
  • docker load: 將tar壓縮文件保存為image
  • docker export: 把容器系統(tǒng)文件打包并導(dǎo)出來,方便分發(fā)給其他場景使用

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Docker安裝使用Rancher及說明

    Docker安裝使用Rancher及說明

    這篇文章詳細(xì)介紹了如何使用Rancher管理Kubernetes集群,包括添加環(huán)境、主機(jī)、應(yīng)用等操作,以及部署微服務(wù)應(yīng)用、擴(kuò)容和縮容的方法,還涉及到InfluxDB、cadvisor和Grafana的安裝和使用,這些工具可以幫助監(jiān)控和可視化數(shù)據(jù)
    2026-03-03
  • 基于Docker部署GitLab環(huán)境搭建的方法步驟

    基于Docker部署GitLab環(huán)境搭建的方法步驟

    這篇文章主要介紹了基于Docker部署GitLab環(huán)境搭建的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • docker制作tomcat鏡像方法及異常處理

    docker制作tomcat鏡像方法及異常處理

    在Docker中創(chuàng)建一個Tomcat鏡像是一個常見的需求,尤其是在開發(fā)、測試和部署Java Web應(yīng)用程序時,這篇文章主要介紹了docker制作tomcat鏡像方法及異常處理的相關(guān)資料,需要的朋友可以參考下
    2025-08-08
  • Docker build創(chuàng)建鏡像命令示例實(shí)踐

    Docker build創(chuàng)建鏡像命令示例實(shí)踐

    本文講解Dockerfile的核心概念、基礎(chǔ)指令、構(gòu)建流程及優(yōu)化技巧,涵蓋鏡像層結(jié)構(gòu)、構(gòu)建上下文、常用命令參數(shù),強(qiáng)調(diào)多階段構(gòu)建、輕量鏡像等最佳實(shí)踐,感興趣的朋友跟隨小編一起看看吧
    2025-08-08
  • 再見 Docker如何5分鐘轉(zhuǎn)型 containerd

    再見 Docker如何5分鐘轉(zhuǎn)型 containerd

    這篇文章主要介紹了再見 Docker如何5分鐘轉(zhuǎn)型 containerd,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • 淺談關(guān)于Docker容器互聯(lián)的初步實(shí)踐

    淺談關(guān)于Docker容器互聯(lián)的初步實(shí)踐

    這篇文章主要介紹了淺談關(guān)于Docker容器互聯(lián)的初步實(shí)踐,本文介紹了使用網(wǎng)橋(bridge)來對容器進(jìn)行互聯(lián),非常具有實(shí)用價值,需要的朋友可以參考下
    2018-10-10
  • docker目錄掛載的新語法小結(jié)

    docker目錄掛載的新語法小結(jié)

    本文主要介紹了docker目錄掛載的新語法小結(jié),詳細(xì)的介紹了兩種掛載目錄的區(qū)別,具有一定的參考價值,感興趣的可以了解一下
    2025-01-01
  • 使用docker-compose創(chuàng)建網(wǎng)橋過程

    使用docker-compose創(chuàng)建網(wǎng)橋過程

    文章介紹了通過docker-compose創(chuàng)建網(wǎng)橋(使用hello-world鏡像),容器退出后網(wǎng)橋仍存在;刪除網(wǎng)橋時使用docker-composedown,網(wǎng)橋消失但其他容器可能仍依賴其網(wǎng)絡(luò)
    2025-08-08
  • Docker 運(yùn)行時的用戶與組管理的方法

    Docker 運(yùn)行時的用戶與組管理的方法

    這篇文章主要介紹了Docker 運(yùn)行時的用戶與組管理的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • Docker解決容器中文字體亂碼問題的終極方案分享

    Docker解決容器中文字體亂碼問題的終極方案分享

    在騰訊云服務(wù)器使用Docker部署Java后端服務(wù)時,經(jīng)常遇到生成圖片、PDF或報表時中文顯示為方框的問題,這是因?yàn)榛A(chǔ)Docker鏡像通常不包含中文字體,下面我們就來看看如何解決吧
    2025-09-09

最新評論

曲阳县| 乌鲁木齐县| 平武县| 五指山市| 张家界市| 万山特区| 黔西| 应城市| 巴马| 右玉县| 广州市| 凉城县| 平阳县| 舒兰市| 三都| 石嘴山市| 罗甸县| 安庆市| 皮山县| 乌恰县| 游戏| 丰都县| 高唐县| 玉屏| 永年县| 南部县| 安泽县| 嘉善县| 永新县| 巫山县| 高密市| 兴宁市| 井研县| 广州市| 淮安市| 张家界市| 土默特左旗| 柯坪县| 新邵县| 兴国县| 卫辉市|