Tag: shell

捕获docker容器内的shell脚本的输出到使用docker sdk for python的文件)

我有一个名为test.sh docker容器中有一个shell脚本。 我想把这个脚本的输出传给一个文件。 我可以使用docker exec命令或通过login到shell(使用./test.sh > test.txt )并运行./test.sh > test.txt 。 但是,我想知道如何使用docker sdk for python实现相同的结果。 这是我的代码到目前为止: import docker client = docker.APIClient(base_url='unix://var/run/docker.sock') container= client.create_container( 'ubuntu:16.04', '/bin/bash', stdin_open=True, tty=True, working_dir='/home/psr', \ volumes=['/home/psr/data'], \ host_config=client.create_host_config(binds={ '/home/xxxx/data_generator/data/': { 'bind': '/home/psr/data', 'mode': 'rw', }, }) ) client.start(container=container.get('Id')) cmds= './test.sh > test.txt' exe=client.exec_create(container=container.get('Id'), cmd= cmds, stdout=True) exe_start=client.exec_start(exec_id=exe, stream=True) for val in […]

错误docker工具:无效的参考格式。 当执行docker运行

完整的命令是 docker run –name mynginx2 -v /var/www:/usr/share/nginx/html:ro \ -v /var/nginx/conf:/etc/nginx:ro -P -d nginx 为什么它不工作? 我在这里find它https://blog.docker.com/2015/04/tips-for-deploying-nginx-official-image-with-docker/ 谢谢

如何在产品环境中将docker与keycloak映像作为后台进程运行

我正在使用docker在aws生产环境中运行我的Keycloak服务器。 问题是keycloak使用不断运行的wildfly。 正因为如此,我无法closures壳。 我试图find一个方法来运行docker作为守护进程线程。 我用来运行docker的命令 docker run -p 8080:8080 jboss/keycloak

保存从Docker容器内部抓取的数据csv文件到本地主机

我运行一个python webscraper来收集关于各种网站的文章,然后保存为csv文件。 我一直在手动运行这些,但最近一直试图在谷歌云壳中运行它们。 我有一些依赖关系的麻烦,所以我决定build立一个docker图像来运行我的python刮板 到目前为止,我已经设法创build了一个Dockerfile,用于构build具有所有必需依赖项的容器。 FROM python:3 # Set the working directory to /app WORKDIR /app # Copy the current directory contents into the container at /app ADD . /app # Install any needed packages specified in requirements.txt RUN pip install –trusted-host pypi.python.org -r requirements.txt RUN pip install lxml COPY Fin24 ./Fin24 COPY scraped_list.csv ./scraped_list.csv […]

在docker集装箱意外输出

我有下面的脚本来从configuration中获取值: #!/bin/bash while read -u10 line do if echo $line | grep -v -e "^#" -e "^$" | grep -F "=" &>/dev/null then varname=$(echo "$line" | cut -f1 -d '=') export $varname=$(echo "$line" | cut -f2 -d '=') fi done 10< ./config echo $a 我的configuration如下: a="b" 当在我的主机,它打印a b ,但在容器中,它打印a "b" 。 谁能知道为什么?

terminal在Docker容器中运行命令后挂起

当我在Docker镜像中执行包testing时: docker run -v `pwd`:/src -t my_docker_image:TAG Rscript -e "setwd('/src/project_dir/'); devtools::check()" 输出: fitStepp: … Reference Venn plot: …… DONE =========================================================================== <terminal hangs…> 或运行简单的脚本: docker run -v `pwd`:/src -t my_docker_image:TAG Rscript -e "setwd('/src/project_dir/'); list.files()"` 输出: [1] "project.Rproj" "DESCRIPTION" [3] "DESCRIPTION.bak" "extdata" [5] "inst" "man" [7] "NAMESPACE" "NEWS.md" [9] "R" "tests" [11] "vignettes" <terminal hangs…> terminal挂起,只能通过CTRL+Cclosures。 任何想法为什么发生这种情况?

jenkins是使用Dockerfile撰写的

您好,我在Jenkins的Docker中构build了一个图像,它创build了一个Jenkins并使用一个插件来远程创buildpipe道。 我的主要问题是,插件需要该服务器运行之前,你想使用它。 为了解决这个问题,我创build一个启动Jenkins的.sh,hibernate2分钟,然后执行pipe道。 它工作正常,但是当我使用Docker撰写它启动.sh文件,但在最后jenkins是停止,我不知道为什么。 我的docker – 撰写文件: 复制 – jenkins: image: dockerfile:latest ports: – "8080:8080" entrypoint: /bin/sh -c "/bin/bash -c \"$${@}\"" command: | /bin/bash -c "chmod 777 /etc/jenkins_jobs/script-to-execute.sh && ./etc/jenkins_jobs/script-to-execute.sh" 我的.sh文件: #!/bin/bash runJenkins(){ echo "Se pone en marcha jenkins" ./usr/local/bin/jenkins.sh &>/dev/null & bg } runPipeline(){ sleep 60 echo "Se ejecuta el pipeline" jenkins-jobs –conf /etc/jenkins_jobs/jenkins_jobs.ini […]

Bash命令模板为Docker

我有一个共同types,现在乏味的命令来启动和链接docker集装箱。 这是像这样的: docker run -d –name my-running-container –link app:some-app-command –link rabbitmq:amq –link mysql:db –link neo4j:neo –link solr:solr my-image 我宁愿执行: docker run –name my-running-container my-image 我怎么能做到这一点? 谢谢

Bash脚本等待依赖命令进程

我是相当新的bash脚本。 我需要使用bash脚本来pipe理我的微服务,所以这些服务需要构build和部署(在docker上)。 所以我有这样的命令: #!/bin/bash mvn clean wait $! mvn package wait $! #Some if elses here sudo docker build -t myService . & wait $! #Some if elses here sudo -S docker run -d -name myService myService & 所以,正如你所看到的(脚本的一小部分,我将函数中的依赖命令分组),命令需要等待以前依赖的命令。 但wait $! 命令在所有的命令后都不好看。 有没有办法解决这种情况?(我打开其他方法,而不是bash脚本,如果它是方便的解决scheme。Btw服务是节点和Java服务分离,所以我需要用一个bash脚本启动它们。

在另一个env中parsingenv

所以我想打印我的envvariables,其中包含其他variables。 例如,我有: MY_VARS="My var are:\nVAR1 = ${MY_VAR1}\nVAR2 = ${MY_VAR2}" MY_VAR1=var1 MY_VAR2=var2 我想以这样的方式使它成为可能: printf "${MY_VARS}" > my.conf 要么 printf "$(echo ${MY_VARS})" > my.conf 像在my.conf文件中那样: My var are: VAR1 = var1 VAR2 = var2 但它的工作。 是否有可能做这样的事情? 我需要它与Kubernetes,所以我可以在我的ReplicationController设置环境,并使用它与像SERVICE_HOST和SERVICE_PORT Kubernetes ENV还有另一个问题,Kubernetes正在改变我的MY_VARSvariables为多行内容器,所以它看起来像: MY_VARS=My var are: VAR1 = ${MY_VAR1} VAR2 = ${MY_VAR2} 希望这很清楚:) 我的解决scheme while read -r line do printf "$line\n" […]