Tag: bash

run_web.sh找不到,即使它在目录中吗?

我刚刚安装了Docker,在设置了Python,Django等一些东西之后,在我的Web服务器运行之前,我得到了一个错误。 为了让Web服务器运行,我写了一个名为run_web.sh的脚本。 它也在docker-compose.yml中configuration来运行web服务器,运行命令exec run_web.sh 。 执行该命令时,会抛出如下错误: Starting portalapi_web_1 … error ERROR: for portalapi_web_1 Cannot start service web: oci runtime error: container_linux.go:265: starting container process caused "exec: \"./run_web.sh\": stat ./run_web.sh: no such file or directory" ERROR: for web Cannot start service web: oci runtime error: container_linux.go:265: starting container process caused "exec: \"./run_web.sh\": stat ./run_web.sh: no such […]

泊坞窗。 如何让bash \ ssh运行容器(run -d)?

我想ssh或bash运行docker集装箱。 请看例子: $ sudo docker run -d webserver webserver is clean image from ubuntu:14.04 $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 665b4a1e17b6 webserver:latest /bin/bash … … 22/tcp, 80/tcp loving_heisenberg now I want to get something like this (go into runned container): $ sudo docker run -t -i webserver (or maybe […]

Bash脚本无法发送指令到MySQL

这是一个Bash脚本的一部分,里面是这样的: createdbcmd="docker exec $1 mysql -v -uroot -e \"GRANT ALL PRIVILEGES ON $dbname.* TO $2@$4 IDENTIFIED BY '$3'\"" echo $createdbcmd $createdbcmd 回声看起来像这样: docker exec mysql_test_no mysql -v -uroot -e "GRANT ALL PRIVILEGES ON wordpress.* TO user@172.17.0.63 IDENTIFIED BY 'changeme'" 运行这个确切的命令工作得很好。 通过bash脚本它就好像我只是运行“MySQL”,我得到默认的帮助信息没有错误。

Dockerfile运行与运行图像和使用/ bin / bash提供不同的结果

我有一个简单的dockerfile,就像 FROM spotify/cassandra RUN sed -i -e "s/^authenticator:.*/authenticator: PasswordAuthenticator/" $CASSANDRA_CONFIG/cassandra.yaml \ && sed -i -e "s/^authorizer:.*/authorizer: org.apache.cassandra.auth.CassandraAuthorizer/" $CASSANDRA_CONFIG/cassandra.yaml RUN cassandra \ && sleep 10 && echo "Applying CQL scripts…" \ && cqlsh -u cassandra -p cassandra -f someScript && pkill -f cassandra 如果我从build立命令做一切事情 docker build –no-cache=true –rm=true . 我得到exception“AuthenticationException(为什么='用户名和/或密码不正确' 但是,如果我用最后一个命令创build图像,并启动它 docker run –rm -i -t […]

如何在一个shell脚本中自动执行Quay.iologin?

我有一个shell脚本,用于在实例化时configuration我的Ubuntu实例。 我需要做的事情之一是login到我的Quay.io帐户,以便我可以从我的私人registry中拖出泊坞窗图像。 有点像这样: Instance-Config.sh #!/bin/bash docker login quay.io -u 'myUserName' -p 'myPassword' -e 'me@mydomain.com' docker run quay.io/myUserName/myContainerName 上面的脚本在login到Dockerhub时工作得很好,但是当我尝试使用它login到Quay.io它会产生各种参数(-u,-p,-e)的提示,当它应该自动填充在命令中提供的参数。 我如何去Quay.io自动login? 我应该注意到,我已经尝试login,复制~/.dockercfg文件的内容,然后尝试将结果stringecho显到Instance-Init.sh脚本中的新的.dockercfg文件中,但必须有一台机器id或其他东西在生产和放置在.dockercfg文件的身份validation令牌,从一台机器生成的login不能用于新的实例(这可能是一件好事)。

在内联运行命令中访问容器环境variables

这个任务非常简单,我知道一个环境variables是(将)在容器中设置,我想在我的内联运行命令中使用它。 但是,该值不会被填充: docker run –rm –link other ubuntu printenv | grep OTHER_ENV_VAR_NAME && echo ${OTHER_ENV_VAR_NAME} 以上命令的当前输出是: > OTHER_ENV_VAR_NAME=valueOfVariableInLinkedContainer > 第二行的echo输出是空的。 我期望得到的是: > OTHER_ENV_VAR_NAME=valueOfVariableInLinkedContainer > valueOfVariableInLinkedContainer printenv给出正确的值,但传递给echo的值是不正确的。 我build议价值评估在我的主机上,而不是在容器内。 因此,我尝试在echo命令周围使用单引号和双引号,并且没有成功地转义$ using。 我的主机也是Ubuntu。

Bash脚本进入正在运行的容器,然后从该容器运行另一个bash脚本

我有一个shell脚本运行如下: image_id=$(docker ps -a | grep postgres | awk -F' ' '{print $1}') full_id=$(docker ps -a –no-trunc -q | grep $image_id) docker exec -i -t $full_id bash 当我从基本的Linux操作系统运行这个,我期望实际上进入postgres容器,这是一个正在运行的容器。 但问题是shell脚本在“docker exec”步骤中挂在第三行。 我的最终目标是使用bash脚本,input一个正在运行的postgres容器,并在该容器中运行另一个bash脚本。 但是,当我从命令行运行它相同的命令,它工作正常,让我进入postgres容器。 请帮忙,我花了几个小时来解决这个问题,但没有进展。 再次感谢

Docker-Compose:Bash命令replace

我正在写Docker docker-compose.yml文件的应用程序,应该有权访问来自容器内的Docker(Docker在Docker中)根据博客文章: https : //jpetazzo.github.io/2015/09/03/do-不使用-泊坞窗-在-泊坞窗换CI / 问题是我需要附加主机Docker二进制文件,但是我不知道目标系统上的docker的确切path,有些可能是/bin/docker ,其他的是/usr/local/bin/docker等。 我想要有跨平台的解决scheme,只是把这样的东西 volumes: – $(which docker):/bin/docker 进入docker-compose.yml 。 Docker-Compose有可能吗?

在Docker运行中使用容器环境variables,而不使用bash -c

我有一个WP-CLI容器,我必须运行以下命令: wp –allow-root core config –dbname=$MYSQL_DATABASE –dbuser=$MYSQL_USER –dbpass=$MYSQL_PASSWORD –dbhost=$WP_CLI_MYSQL_HOST –debug 当我在容器中运行bash时,我没有问题,但是当我尝试去做: docker-compose run –rm wordpress-cli –rm core config –dbname=$MYSQL_DATABASE –dbuser=$MYSQL_USER –dbpass=$MYSQL_PASSWORD –dbhost=$WP_CLI_MYSQL_HOST –allow-root –debug 所有环境variables都在主机中而不是容器中进行评估,所以它们被空的传递给容器。 我在这个问题中发现,使用bash -c 'my command'将做的伎俩,但我的ENTRYPOINT是WP命令,所以我想只运行而不使用bash命令。

如何写一个自动进入“docker集装箱”和做其他事情的bash脚本?

我想实现一个自动的bash脚本,它进入一个正在运行的docker container ,并做一些事情: # cat docker.sh #!/bin/bash -x docker exec -it hammerdb_net8 bash cd /data/oracle/tablespaces/ pwd 在terminal上执行脚本: # ./docker.sh + docker exec -it hammerdb_net8 bash [root@npar1 /]# 输出显示只logindocker container ,但不会做其他操作。 是否有任何方法来自动进入docker container和做其他事情?