如何编写一个自动进入“docker容器”和做其他事情的bash脚本?

Nan*_*iao 3 linux bash shell docker

我想实现一个bash进入 running的自动脚本docker container,并做一些事情:

# cat docker.sh
#!/bin/bash -x

docker exec -it hammerdb_net8 bash
cd /data/oracle/tablespaces/
pwd
Run Code Online (Sandbox Code Playgroud)

在终端上执行脚本:

# ./docker.sh
+ docker exec -it hammerdb_net8 bash
[root@npar1 /]#
Run Code Online (Sandbox Code Playgroud)

输出只显示登录docker container,不做其他操作。

有什么方法可以自动输入docker container和做其他事情吗?

anu*_*ava 5

您可以使用bash -c

docker exec -it hammerdb_net8 bash -c 'cd /data/oracle/tablespaces/; pwd; ls'
Run Code Online (Sandbox Code Playgroud)

要运行一系列命令,请在 BASH 中使用here-doc

docker exec -i hammerdb_net8 bash <<'EOF'
cd /data/oracle/tablespaces/
pwd
ls
EOF
Run Code Online (Sandbox Code Playgroud)