Tag: sh

在Docker的背景下运行Jupyter笔记本

我正在试图在后台运行一个jupyter笔记本,而不打印任何东西到控制台。 我在bash的问题中发现了这个解决scheme: jupyter notebook &> /dev/null & 但是我在Docker容器中运行jupyter,并希望它通过CMD在后台启动。 我怎么能在sh做同样的事情?

Dockerfile CMD指令将在运行后立即退出容器

我想在我的容器启动时设置一些configuration,因为我使用的是shell脚本。 但是当我的脚本结束时,我的容器就会退出,我尝试了-d标志/分离模式,但是它永远不会以分离模式运行。 以下是我的Dockerfile FROM ubuntu:14.04 ADD shell.sh /usr/local/bin/shell.sh RUN chmod 777 /usr/local/bin/shell.sh CMD /usr/local/bin/shell.sh 下面是我的shell脚本 #!/bin/bash echo Hello-docker 没有任何标志运行 docker run hello-docker 这将在我的控制台上打印“Hello-docker”并退出 使用-itd标志运行 docker run -itd hello-docker 和下面我的控制台输出,这一次也将很快退出。 🙁 我看到的区别是在命令部分,当我运行其他图像命令部分将显示“/ bin / bash”,并将继续在分离模式。 而当我运行我的图像在shell脚本容器与命令部分将显示“/ bin / sh -c / usr / loca”,并退出。 我想运行容器,直到我没有手动停止它。 编辑: 在Dockerfile中添加ENTRYPOINT指令后,这将不会执行我的shell脚本:( FROM ubuntu:14.04 ADD shell.sh /usr/local/bin/shell.sh RUN chmod 777 /usr/local/bin/shell.sh […]

简单的脚本需要删除超过4周的所有docker图像

我知道以前也有类似的问题,但我找不到任何我需要的东西。 我也在Docker社区论坛上提出过问题,但没有人能提供帮助。 我无法访问新的docker image prune命令,因为我无法从当前版本1.11.2升级到最新的1.13版本,但是我需要一个可以在cron下运行的简单脚本来删除所有映像悬挂与否,超过1个月大。 我不需要担心容器,因为这是来自只存储图像的回购。 如果docker图像报告“4周”为“1个月”,这将是简单的,我可以使用类似的东西 docker images | grep " [months]* " 并输出到docker rmi命令。 然而,由于它似乎是在“星期”到11个星期内报告,而且一旦形象是3个月或更长时间,只有“月”,我不能这样做。 docker images | grep " [months|weeks]* ago" | awk '{print $3,$4,$5}' 会给我这个输出:: 6828f152f9cc 2 weeks 52a7412befd3 2 weeks 04c2b29e5e08 2 weeks cdfb37d22663 2 weeks ca38a8cabb2b 3 weeks 8b043f2395ba 3 weeks 2aa8b20380a0 3 weeks 1ac7dcf35935 9 weeks f80873c4845b 9 […]

通过环境传递bash代码(用于docker-compose)

我试图处理docker-compose命令的一个已知问题,因此我以一个简单的解决scheme结束了脚本,检查脚本是否准备好启动命令。 这是这个想法,有一些环境variables定义到容器: WAIT_COMMAND应该是一个在sh脚本中定义一个逻辑testing的string,它必须返回一个布尔值 START_CMD根据WAIT_COOMAND结果运行命令的string,否则请重试,直到到达LOOPS 。 LOOPS多less次尝试 睡眠之间多less次睡眠 在那个例子中,我正在等待elasticSearch在启动我的应用程序之前作出响应,这取决于ES数据的启动。 以下脚本将是我在docker集装箱上的入口点。 导出ENVvariables WAIT_COMMAND="$(curl –write-out %{http_code} –silent –output /dev/null http://elastic:9200/_cat/health?h=st) == 200" LOOPS=3 START_CMD="python my_script_depending_on_elastic.py" SLEEP=2 具有上述ENVvariables可用的脚本应等到ES请求返回代码200 #!/bin/bash is_ready() { eval $WAIT_COMMAND } # wait until is ready i=0 while ! is_ready; do i=`expr $i + 1` if [ $i -ge $LOOPS ]; then echo "$(date) – still […]

我怎样才能运行一个docker容器,并提交脚本完成后的变化?

我想设置一个cron作业来在Docker容器中运行一组命令,然后将更改提交到Docker镜像。 我可以运行容器作为守护进程,并使用此命令获取容器ID: CONTAINER_ID=$(sudo docker run -d my-image /bin/sh -c "sleep 10") 但是我在第二部分遇到了麻烦 – 一旦sleep 10命令完成,就会对图像进行更改。 有没有一种方法可以告诉我什么时候docker集装箱将要被杀死,然后再运行另一个命令呢? 编辑:作为替代,有没有办法通过在容器中的shell脚本来触发ctrl-pq离开容器运行,但返回到主机?

在Dockerfile中运行RUN命令

我有一个像这样的行: RUN for i in `xyz`; do echo "$i"; done 打算打印这三个项目的每一个 但是它会引发/bin/sh: 1: x: not found 任何想法我做错了什么?