Docker 進入容器,並在容器內執行命令


– 語法:

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

– OPTIONS 參數說明:

  • -i: 讓容器的標准輸入(STDIN)始終保持打開,即使沒有輸入任何指令(沒有附加)
  • -t: 分配一個終端,這樣我們就可以使用命令來操作
  • -d: 分離模式,讓命令在后台(指的是宿主后台)運行。
  • –user:指定用戶運行,當我們需要 root 用戶權限時可以指定。

【注】一般使用 -it 就足夠了。

– COMMAND 參數:

command 指的是 shell 的類型,常見的有 bashshzsh,但是 Linux 系統大多數默認的是 bash 類型,新版 Mac OS 系統的話,默認的不再是 bash ,而是 zsh

– 查看正在運行的容器

docker ps

執行結果如下:

CONTAINER ID      IMAGE         COMMAND               CREATED          STATUS            PORTS                NAMES

91af26862191      nginx     "/docker-entrypoint.…"   7 hours ago       Up 2 hours       0.0.0.0:80->80/tcp     webserver

–  使用 exec 進入容器

docker exec -it webserver bash 
# 或 
docker exec -it 91af26862191 bash 

就可以進入到容器內部的命令行界面。

如果需要root權限的話,可以指定 root 用戶進入容器:

docker exec -it --user root webserver bash
# 或
docker exec -it --user root 91af26862191 bash

【注】webserver 與 91af26862191 都是容器的唯一標識,所以用哪個都可以。

一般容器里面的 Linux 是精簡版的,沒有 less 、cat 、vim/vi 等命令,如果需要的話可以自己安裝,默認自帶 APT 命令。

【注】如果是學習使用可以選擇在容器內部安裝其他命令,如果是正式環境的話推薦把各個容器的配置文件映射到宿主機器上(也就是裝 Docker 的機器)方便維護

原文地址:Docker 進入容器,並在容器內執行命令 – Roc's Blog (havemail.cn)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM