docker 實現容器與宿主機無縫調用shell命令
如下所示:
nsenter -t 1 -m -u -n -i sh -c "echo hello world! "
docker容器加上privilege權限, 設置pid: “host”
補充:在宿主機執行docker容器中的shell腳本或命令
常見命令形式:
docker exec -it master /bin/bash -c 'echo $PATH' docker exec -it master /bin/bash -c 'cd /home/bigdata/shell && ./test.sh'
如果shell腳本中涉及到環境變量,或者提示JAVA_HOME is not set,可以在腳本中加上以下命令
export JAVA_HOME=jdk路徑
補充:在docker宿主機上運行docker中container中的執行的命令
腳本如下:
docker exec -u root xxx(container名稱) bash -c '命令1 && 命令2'
實際例子如下:
docker exec -u root mycentos bash -c 'mkdir /home/test.txt && chmod 777 /home/test.txt && runuser - oracle -c "rm -rf /home/test.txt"'
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- None Found