shell - Docker容器需要很长时间才能通过Shell脚本启动

标签 shell docker cassandra scripting

我是Shell脚本的新手,最近从Basic开始。我已经编写了代码来检查是否有cassandra节点,如果没有,它会给出是或否,然后执行一些命令。我的问题是我已经启动了node1,并且正在检查节点是否已经存在,然后获取该容器的ID并启动该容器。但是,当我运行它时,它获取了容器的ID,花费了很长时间,并且从未启动。如果我在没有 shell 命令的情况下启动容器,它将启动。但我想沉迷于 shell 。

这是我的代码:

if sudo docker ps -a | grep -q 'node1';then
    sudo docker inspect --format="{{.Id}}" node1
read num    
sudo docker start num
elif sudo docker ps -a | grep -q 'node2';then
    sudo docker inspect --formar="{{.Id}}" node2
read Idnode2 
    sudo docker start Idnode2
else
    sudo docker run --name node1 -d -e CASSANDRA_BROADCAST_ADDRESS=192.168.1.xx -p 7000:7000 cassandra:2
fi

输出:
./tet.sh
f1713abbee52ca465962ec53e97dde62058d37859005f77786db3e3eebe0086c
blinks forever after this

我不明白为什么它闪烁而不执行。

最佳答案

我自己使用下面的命令解决了

if sudo docker ps -a | grep -q 'node1';then
    sudo docker inspect --format="{{.Id}}" node1    
    sudo docker start node1
elif sudo docker ps -a | grep -q 'node2';then
    sudo docker inspect --formar="{{.Id}}" node2
read Idnode2 
    sudo docker start Idnode2
else
    sudo docker run --name node1 -d -e CASSANDRA_BROADCAST_ADDRESS=192.168.1.xx -p 7000:7000 cassandra:2
fi

关于shell - Docker容器需要很长时间才能通过Shell脚本启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53380591/

相关文章:

linux - 为什么 'which' 在 Linux 中找到相同符号链接(symbolic link)的两个实例?

bash - 运行 Docker 交互式 Shell

java - 运行我的第一个 PlayORM 测试时出现异常

java - 如何在 Apache Spark 中重新分区 CassandraRDD

linux - 移动目录中具有重复文件名的多个文件

linux - 如何在 shell 脚本中导入两个库?

bash - 如何匹配sed中的单引号

docker - 将 WSL VSCode 扩展连接到安装在 Windows 中的 docker

docker - 将目录从容器复制到主机

Python Cassandra 驱动程序仅插入一条记录