我有这个 docker run 命令:
docker run --rm --name=gitleaks \
-v "/keys/ssh/values:/root/.ssh" \
zricethezav/gitleaks \
--ssh-key='bucket' \
--repo "$line"
我把它翻译成这样:
docker create zricethezav/gitleaks --name=gitleaks
docker cp /keys/ssh/values gitleaks:/root/.ssh
docker start gitleaks --ssh-key='bucket' --repo "$line"
但它给了我这个错误:
Error: No such container:path: gitleaks:/root unknown flag: --ssh-key
有人知道我哪里出错了吗?最终我从一个正在运行的容器中调用 docker run 并且在共享文件时遇到了问题,所以试图让 docker cp 工作。
最佳答案
问题在于您的第一个和第二个命令语法。
docker create zricethezav/gitleaks --name=gitleaks
--name 应该是 在图像名称之前,否则 docker create 会将其解释为 COMMAND 参数OPTIONS 标志。
docker start gitleaks --ssh-key='bucket' --repo "$line"
我知道您想使用参数--ssh-key 和--repo 运行镜像,但是docker start 是不可能的。命令。如果要将这些参数传递给镜像运行的进程,则应将这些参数传递给镜像名称后的 docker create 或 docker run 命令。
所以你应该这样做:
# Mind the --name before the image name
docker create --name=gitleaks zricethezav/gitleaks --ssh-key='bucket' --repo "$line"
docker cp /keys/ssh/values gitleaks:/root/.ssh
docker start gitleaks
docker create 的解释:
docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS 标志应该在 IMAGE 之前指定,并且 IMAGE 之后的所有内容都将被解释为 COMMAND 和ARG....
当你运行时
docker create zricethezav/gitleaks --name=gitleaks
您实际上将 --name=gitleaks 作为 COMMAND 传递,这将覆盖默认图像命令(通常由 CMD 在Dockerfile),您可能希望将其作为 OPTIONS 传递。例如,如果您运行:
docker create alpine --name=foobar
docker create --name=foobar alpine
docker ps -a 输出将如下所示:
IMAGE COMMAND NAMES
alpine "/bin/sh" foobar
alpine "--name=foobar" quirky_varahamihira
如果要同时传递 OPTIONS 和 COMMAND,则必须在图像名称和 COMMAND 之前指定 OPTIONS > 在图片名称之后。
关于docker - 将 docker run 翻译成子组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56084451/
1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里
我正在开发一个Ruby脚本,需要在没有Ruby解释器的情况下部署到系统上。它将需要在使用ELF格式的FreeBSD系统上运行。我知道有一个ruby2exe项目可以编译在Windows上运行的ruby脚本,但是在其他操作系统上这样做容易吗?甚至可能吗? 最佳答案 您是否检查过Rubinius或JRuby是否允许您预编译您的代码? 关于ruby-ruby脚本可以预编译成二进制文件吗?,我们在StackOverflow上找到一个类似的问题: https://
我正在尝试使用docker运行一个Rails应用程序。通过github的sshurl安装的gem很少,如下所示:Gemfilegem'swagger-docs',:git=>'git@github.com:xyz/swagger-docs.git',:branch=>'my_branch'我在docker中添加了keys,它能够克隆所需的repo并从git安装gem。DockerfileRUNmkdir-p/root/.sshCOPY./id_rsa/root/.ssh/id_rsaRUNchmod700/root/.ssh/id_rsaRUNssh-keygen-f/root/.ss
我在Heroku上构建了一个必须在Docker容器内运行的RoR应用程序。为此,我使用officialDockerfile.因为它在Heroku中很常见,所以我需要一些附加组件才能使这个应用程序完全运行。在生产中,变量DATABASE_URL在我的应用程序中可用。但是,如果我尝试其他一些使用环境变量(在我的例子中是Mailtrap)的加载项,变量不会在运行时复制到实例中。所以我的问题很简单:如何让docker实例在Heroku上执行时知道环境变量?您可能会问,我已经知道我们可以在docker-compose.yml中指定一个environment指令。我想避免这种情况,以便能够通过项目
我在开发和生产中都使用docker,真正困扰我的一件事是docker缓存的简单性。我的ruby应用程序需要bundleinstall来安装依赖项,因此我从以下Dockerfile开始:添加GemfileGemfile添加Gemfile.lockGemfile.lock运行bundleinstall--path/root/bundle所有依赖项都被缓存,并且在我添加新gem之前效果很好。即使我添加的gem只有0.5MB,从头开始安装所有应用程序gem仍然需要10-15分钟。由于依赖项文件夹的大小(大约300MB),然后再花10分钟来部署它。我在node_modules和npm上遇到了
开门见山|拉取镜像dockerpullelasticsearch:7.16.1|配置存放的目录#存放配置文件的文件夹mkdir-p/opt/docker/elasticsearch/node-1/config#存放数据的文件夹mkdir-p/opt/docker/elasticsearch/node-1/data#存放运行日志的文件夹mkdir-p/opt/docker/elasticsearch/node-1/log#存放IK分词插件的文件夹mkdir-p/opt/docker/elasticsearch/node-1/plugins若你使用了moba,直接右键新建即可如上图所示依次类推创建
测试环境对于任何一个软件公司来讲,都是核心基础组件之一。转转的测试环境伴随着转转的发展也从单一的几套环境发展成现在的任意的docker动态环境+docker稳定环境环境体系。期间环境系统不断的演进,去适应转转集群扩张、新业务的扩展,走了一些弯路,但最终我们将系统升级到了我们认为的终极方案。下面我们介绍一下转转环境的演进和最终的解决方案。1测试环境演进1.1单体环境 转转在2017年成立之初,5台64G内存的机器,搭建5个完整的测试环境。就满足了转转的日常所需。一台分给开发,几台分给测试。通过沟通协调就能解决多分支并行开发下冲突问题。1.2动态环境+稳定环境 随着微服务化的进
运行有问题或需要源码请点赞关注收藏后评论区留言一、利用ContentResolver读写联系人在实际开发中,普通App很少会开放数据接口给其他应用访问。内容组件能够派上用场的情况往往是App想要访问系统应用的通讯数据,比如查看联系人,短信,通话记录等等,以及对这些通讯数据及逆行增删改查。首先要给AndroidMaifest.xml中添加响应的权限配置 下面是往手机通讯录添加联系人信息的例子效果如下分成三个步骤先查出联系人的基本信息,然后查询联系人号码,再查询联系人邮箱代码 ContactAddActivity类packagecom.example.chapter07;importandroid
1.现象服务重启后,通过dockerstart方式无法启动实例,报出错误:Errorresponsefromdaemon:errorcreatingoverlaymountto/var/lib/docker/overlay2/xxx/merged:nosuchfileordirectorydockersave导出镜像也报出2.网上各种尝试摸索无效果修改daemon.json中的storage-driver为overlay,重启无效果。禁用selinux,临时或永久方式都无效果。修改/etc/docker/daemon.json中的storage-driver为overlay2,无效果。修改/l
我的ruby版本是用editline(在osx上)编译的,我错过了irb中readline的功能。如何使用readline支持重新编译ruby? 最佳答案 安装readline到/usr/local从头开始重新编译ruby并使用--with-readline-dir=/usr/local开关或者如果您之前已经下载了ruby源代码并手动构建了它,转到ruby源代码树的ext/readline文件夹键入rubyextconf.rb,然后为ruby运行make&&makeinstall过程。