Tag: bash

确保docker守护进程在脚本文件的主机上运行

Mac OSX运行使用docker命令的bash脚本,并经常出现错误: 无法连接到Docker守护进程。 docker守护程序是否在这个主机上运行? 然后,我使用Cmd + Space打开Spotlightsearch并键入dockerterminal,以启动dockerterminal,以便shell脚本不会失败 有没有办法在脚本中这样做,以便它在每次运行时运行docker守护进程? 我尝试了以下无济于事。 docker-machine start default 我正在运行Docker版本1.12.0,编译8eab29e

如何从远程位置下载并在容器启动Docker上执行脚本?

我试图在docker-compose环境中为几个不同的图像运行类似的脚本。 使用类似的Dockerfiles修改和推送所有的图像将是困难的,所以我正在寻找一个替代解决scheme。 在docker-compose中,我只能改变入口点和命令。 所以我正在寻找一种方法来执行从远程位置下载的脚本作为入口点。 简单地说我想执行命令sh <(wget -qO- http://localhost/script.sh) arg或wget -qO- http://localhost/script.sh | sh -s arg wget -qO- http://localhost/script.sh | sh -s arg作为入口点,但无法find应该如何做的方法。

Docker – 文件中基于dynamic正则expression式的sedreplace

我有一个在env_file docker-compose.yml引用的env_file声明的各种环境variables export FOO=bar export FAZ=baz 在容器中的configuration文件中,我引用了这些环境variables: Today is a great day to ${FOO} and ${FAZ} 我希望能够捕获所有以${开头, ${ }结尾的文本(例如${<SOMETHING>} )的实例,然后将其replace为<SOMETHING>键的环境variables。 下面的工程在shell中,但我不能得到这个工作与sed -i对一个文件,或在一个bash脚本。 echo "TODAY IS ${DAY}" | sed -r 's/(<foobar>\$[\w{}]+)/<foobar>/g 环境variablesDAY是“FUNDAY”将产生: "TODAY IS FUNDAY"

在Docker构build期间不能使用进程replace,因为bash进入posix模式

在Dockerfile中,我想使用进程replace: RUN echo <(echo '$DATA:'"$DATA") 但是docker build使用/bin/sh运行每个RUN命令。 显然正在运行的sh导致bash切换到POSIX模式,这不允许进程replace: /bin/sh: -c: line 0: syntax error near unexpected token `(' 我试过closuresPOSIX模式: RUN set +o posix && echo <(echo '$DATA:'"$DATA") 但是,即使在第一个命令运行之前,语法错误似乎也会发生。 同样如果我用&&replace&& ; 。 请注意,该命令(即使是我在这里用作简化示例的命令)也包含单引号和双引号,所以我不能简单地将bash -c加在前面。 使用的shell实际上是一个bash,但是它被docker调用为/bin/sh : Step 7 : RUN ls -l /bin/sh —> Running in 93a9809e12a7 lrwxrwxrwx 1 root root 9 Dec 28 03:38 /bin/sh […]

连接到docker容器中的特定shell实例?

比方说,我有一个正在运行的docker容器my_container 。 我开始一个新的shell会话: docker exec -it my_container bash 然后我启动一个进程(例如Python脚本),然后用cntrl-p cntrl-q退出容器,让脚本在后台运行。 如果我用几个不同的脚本做这个几个不同的时间,我如何重新连接到一个特定的shell实例,以便我可以看到我的脚本的标准? 如果我使用docker attach my_container ,那么当我docker run docker attach my_container docker run命令时,我总是将其放置在第一个shell实例中。

停止正在运行一段时间的Docker容器

我想创build一个cron作业来阻止Docker容器,如果它们的运行时间超过了2个小时。 我可以得到他们开始的时间。 $ docker inspect -f '{{ .State.StartedAt }}' $(docker ps -q) 只需要比较2小时前… $ date –utc –date="-2 hours" +"%Y-%m-%dT%H:%M:%S.%NZ" …如果这是更早停止容器 $ docker stop <<container_id>> 我怎样才能做到这一点与bash脚本?

无法在RUN中运行envvariablesscript.sh Dockerfile

我有这个Dockerfile: FROM php:5.6-apache WORKDIR /var/www/html/ # ENV VARIABLES ENV INI_FOLDER /usr/local/etc/php ENV WWW_FOLDER /var/www # ADD THE ENV CONFIGURATOR AND SET PERMISSIONS ADD env.sh $WWW_FOLDER/ RUN chmod +x $WWW_FOLDER/env.sh RUN /var/www/env.sh 问题是在env.sh我无法访问在docker-compose上设置的variables。 有没有解决这个问题的方法? 更新:添加docker撰写 version: '2.0' services: app: env_file: – app/mysql.env – app/app.env volumes: – C:\Users\svirl\Documents\workspace\docker\my-app:/var/www/html/:rw build: app

使用Docker在Django App中编译和运行不受信任的代码

我正在构build一个Django Web应用程序来编译和运行用户提交的不同语言的不受信任的代码。 编译后面的步骤是: 从运行操作提供的编辑器获取代码 以文件名存储在数据库中 运行它使用bash脚本。 由于安全问题,在terminal直接运行代码问题,我曾经想过使用Docker作为解决scheme。 我已经创build了一个docker文件,如下所示: FROM chug/ubuntu14.04×64 # Update the repository sources list RUN echo "deb http://archive.ubuntu.com/ubuntu trusty main universe" > /etc/apt/sources.list RUN apt-get update #RUN apt-get upgrade #Install all the languages/compilers we are supporting. RUN apt-get install -y gcc RUN apt-get install -y g++ RUN apt-get install -y python 我希望为用户运行的每个代码构build容器,并在使用后销毁它们。 但是,如何为每个用户创build容器,并在使用后放置容器?

Docker + Laravel安装

我使用CentOS 7与Docker和Laravel进行了一次小小的合作。 使用教程( https://tecadmin.net/install-laravel-framework-on-centos/# )安装,我不知道为什么,但第五步内出现了问题。 terminal说这个: [root@docker laravel]# php artisan key:generate PHP Parse error: syntax error, unexpected 'class' (T_CLASS), expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in /var/www/laravel/artisan on line 31 而在工匠线31是这样的: $kernel = $app->make(Illuminate\Contracts\Console\Kernel::class); 如果有人有一个想法请帮助。 我希望安装Laravel结合Docker和Laravel与Laradock,我希望这不会像这样错误感谢莫里茨

用docker-compose运行pm2时节点错误ENOSPC

当我的pm2服务启动时出现以下错误: Error: watch /usr/src/app/node_modules/zip-stream/node-modules/loadash/… ENOSCP at exports._errnoException (util.js:1034:11) at FSWatcher.start (fs.js:1400:19) at Object.fs.watch (fs.js:1426:11) at createFsWatchInstance (/usr/local/lic/node_modules/pm2/node_modules/chokidar/lib/nodefs-handler.js:37:15) …. at FSReqWrap.oncomplete (fs.js:114:15) 只有在构build和运行docker时才会发生这种情况: docker – 撰写 – build立 如果我只是build立docker,然后在docker里面命令: docker-compose exec downtorrent_back_dev bash sh start.sh 那么,它启动服务没有任何问题。 这是docker-compose.yml文件: version: '3' services: downtorrent_back: container_name: downtorrent_back_dev build: context: . dockerfile: Dockerfile-back.dev volumes: – ./back:/usr/src/app expose: – "10002" – "9090" […]