所以我试图运行下面的外壳脚本,它需要容器的ID/名称(脚本将在其中运行)动态。
一种方法是使用docker ps,然后获取容器Id,但这不是动态的。
那么有没有办法动态地做到这一点呢?
#!/bin/bash
docker exec <container id/name> /bin/bash -c "useradd -m <username> -p <password>"
我刚刚想出了一个方法来解决这个问题。我经常在bash中进入我的容器,但每次我这样做时,我都必须查找正在运行的容器的id——这是一件让人头疼的事。我使用--filter
命令如下:
docker ps -q --filter="NAME={name of container}"
那么唯一输出的就是容器的id,它允许我运行:
docker exec -it $(docker ps -q --filter="NAME={name of container}") bash
这就是我在这种情况下真正想做的。
你可以通过
id, name, label, exited, status, ancestor,
beforesince, volume, network, publishexpose,
health,isolation, or is-task
过滤器的文档在这里。希望这能帮助别人。
可以启动容器并将容器id存储在变量中,如下所示:
container_id=$(docker run -it --rm --detach busybox)
然后可以在docker exec
命令中使用容器id,如下所示:
docker exec $container_id ls -la
或者
docker stop $container_id
注意:不要为容器使用(唯一的)名称,而是使用ID,这是本文关于如何将服务器/容器视为牛而不是宠物的启发
在运行容器时,可以使用--name选项为容器指定一个特定的名称。
docker run --name mycontainer ...
然后exec命令可以使用指定的名称:
docker exec -it mycontainer ...
我目前用JavaFX制作了一个表单。我总是按一个按钮,我调用“addAnswer()”-方法。在其中,我创建了一个RadioButton、一个Label和一个deleteButton,我将它们捆绑在一个HBox中。我把所有的HBox都装在一个vBox中。现在的问题是删除按钮。我想深入研究点击按钮的HBox。 这是我的代码: 我在上面试过这个,但我意识到,所有的delAnswers-Button都有
问题内容: 我准备了一个docker-compose文件来部署带有数据库的容器: 没关系。但是现在我需要创建一个数据库并建立其结构。我需要执行一些sql命令。为了检查我是否能够做到这一点,我将其添加到服务中: 但是我遇到以下错误: 我感觉命令是在Sql Server实例启动之前执行的。我该如何解决?Sql Server启动后如何执行一些sql? 问题答案: 问题是在容器中仅执行一个命令。当您在其中
问题内容: 从容器名称获取docker容器ID的命令是什么? 问题答案: 在Linux中: 或在OS X,Windows中: 您的容器名称在哪里。 如@llia Sidorenko所述,为避免产生误报,您可以使用正则表达式锚点,如下所示: 说明: 为了安静。仅输出ID 对所有人。即使您的容器未运行也能正常工作 用于过滤器。 容器名称必须以该字符串 开头 容器名称必须 结束 这个字符串
从容器名称中获取Docker容器id的命令是什么?
问题内容: 我有一个创建的容器,但我不记得我用来启动它的确切命令。有什么办法可以找回吗? 这与在Docker中查看运行/停止容器的完整命令不同, 我想知道的是生成容器的完整docker命令,而不是容器内的命令。 问题答案: 通过查看的输出,您可以推断出大部分信息。 例如,您可以通过查看键来发现在容器内部启动的命令。如果我运行: 我以后可以运行: 得到: 同样,的输出还将包含有关容器中使用的Dock
我有一个我创建的容器,但我记不起我用来启动它的确切的docker run命令。有什么方法可以找回吗? 这与在Docker中查看运行/停止容器的完整命令不同,我想知道的是生成容器的完整Docker命令,而不是容器中的命令。