- CKA/CKAD應試教程:從Docker到Kubernetes完全攻略
- 段超飛編著
- 879字
- 2025-03-17 18:51:30
1.7 管理容器的命令
容器如同一臺沒有顯示器的計算機,如何查看容器里的東西,又如何在容器里執行命令呢(圖1-18)?可以利用docker exec命令來實現。
通過docker exec命令就可以執行容器里的命令了。
1.7.1 在容器里執行指定的命令

圖1-18 在容器里執行命令
語法:

在nerdctl里管理容器的語法如下。

第1步 在容器db里執行ip a | grep 'inet ’命令。

如果容器里沒有要執行的命令,就會出現報錯。


如果想獲取shell控制臺,需要加上-it選項。
第2步 獲取容器里的bash控制臺。

注意
有的鏡像里不存在bash,可以使用sh替代。
上述命令在vms101上用nerdctl執行,只要把關鍵字docker換成nerdctl即可。
1.7.2 物理機和容器互相拷貝文件
有時我們需要讓物理機和容器之間互相拷貝一些文件,它們之間拷貝文件的語法如下。

第1步 把物理機里的/etc/hosts拷貝到容器的/opt里。

可以看到,容器的/opt目錄里原來是沒有hosts文件的,現在已經拷貝進去了。
第2步 把容器里的/etc/passwd拷貝到物理機的/opt里。


可以看到,物理機的/opt目錄里原來是沒有passwd文件的,現在已經拷貝進去了。
上述命令在vms101上用nerdctl執行,只要把關鍵字docker換成nerdctl即可。
1.7.3 關閉、啟動、重啟容器
一般情況下,在操作系統里重啟某個服務,可以通過“systemctl restart 服務名”命令來實現,容器里一般是無法使用systemctl命令的。如果要重啟容器里的程序,直接重啟容器就可以了。下面演示如何關閉、啟動、重啟容器。
第1步 關閉、啟動、重啟容器。

上述命令在vms101上用nerdctl執行,只要把關鍵字docker換成nerdctl即可。
第2步 查看容器里運行的進程。
語法:

這個類似于任務管理器,可以查看到容器里正在運行的進程。

上述命令在vms101上用nerdctl執行,只要把關鍵字docker換成nerdctl即可。
1.7.4 查看容器里的輸出
當容器無法正常運行時,我們需要查看容器里的輸出來進行排錯。如果要查看容器里的日志信息,可以使用如下命令。

查看容器日志時,如果要持續顯示日志內容,即只要容器內容更新,日志中就能立即顯示出來,可以使用“docker logs -f 容器名”命令。
第1步 查看容器日志輸出。

上述命令在vms101上用nerdctl執行,只要把關鍵字docker換成nerdctl即可。
如果要查看容器的屬性,可以通過“docker inspect 容器名”命令來實現。
第2步 查看容器db的屬性。

在這個輸出里,可以查看到容器的各種信息,比如數據卷、網絡信息等。
上述命令在vms101上用nerdctl執行,只要把關鍵字docker換成nerdctl即可。