Tag:

Docker教程:Daemonized容器closures – 语法错误

我一直在通过链接在这里的用户指南: Docker用户指南:容器 。 我在dockerterminal运行这个命令: $ docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done" 这应该创build一个在后台运行的容器。 但是,当我看,看它是否正在运行,使用: $ docker ps -a 它显示该容器已创build,但已停止运行。 容器的日志包含以下内容: true;: 1: true;: Syntax error: end of file unexpected 运行命令而不尝试创build守护进程会产生类似的结果: $ docker run ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done" true;: 1: […]

通过在奴隶jenkins壳清洗docker集装箱

我们有一个场景,我们build立一个使用多个docker图像和容器的产品。 我们的Jenkins环境构build各个组件,将它们打包到容器中,然后(通常)将它们部署到testing实例中。 不幸的是,让这些testing实例变得干净已经成为我遇到的麻烦了。 奴隶是Ubuntu 14.04和16.04 LTS。 Docker是这些版本的最新稳定版本(1.12.3)假设jenkins用户已经正确连接到slave设备,并且通过sudoers文件拥有sudo权限来运行docker命令。 用户也在docker组中。 由于我们从通过docker-compose创build的一组正在运行的容器开始,因此我们将容器作为以开始的Jenkinsshell脚本的forms停止 docker工人停下来 然后,我们删除这些容器和相关的卷 docker-compose rm -fv 现在是删除图像的时候了,因为我们要拍摄一组新的图像。 在这里,我的代码已经发展了,但是效果不好。 我目前执行以下操作: dockerimagesoutput="$(sudo docker images -q | sort | uniq)" if [ ! -z "$dockerimagesoutput" ]; then sudo docker rmi "${dockerimagesoutput}" fi 当它在奴隶上运行时,我终于结束了 sudo docker images -q + sort + uniq + dockerimagesoutput=01b1b8ea71f4 027c45033c40 0b17fb320c4f 182d60ace820 19a515d76e88 . . . […]

Ubuntu容器找不到shell脚本

我是Docker的新手,正在尝试一个运行shell脚本的Ubuntu容器的简单示例。 我在Windows 10上使用Docker 17.09.0-ce。 我的shell脚本就是: #!/bin/sh echo "hello world!" 我的Dockerfile是: FROM ubuntu:14.04 WORKDIR /usr/local/bin COPY shelltest.sh shelltest.sh ENTRYPOINT ["/usr/local/bin/shelltest.sh"] 我已经尝试了各种forms的入口点和CMD调用,没有任何工作。 他们都失败,“没有这样的文件或目录”。 当我将入口点改为“/ bin / sh”并交互启动容器时,我可以看到文件/usr/local/bin/shelltest.sh,它具有执行权限755,所以我不知所措解释为什么这不起作用。 当入口点设置为“ls -l /usr/local/bin/shelltest.sh”时,以下是容器中文件的样子: ENTRYPOINT ["ls", "-l", "/usr/local/bin/shelltest.sh"] d:\Dev\Docker\shelltest>docker run shelltest -rwxr-xr-x 1 root root 32 Oct 29 16:32 /usr/local/bin/shelltest.sh 我错过了什么? 以下是我尝试过的一些事情: ENTRYPOINT ["/usr/local/bin/shelltest.sh"] d:\Dev\Docker\shelltest>docker run shelltest standard_init_linux.go:185: exec user process […]

CircleCI:validationdocker容器是否通过HTTP进行响应的最佳方法

这里是我的circle.yml的一部分的一个例子,我目前正在validation我的mongodb docker容器是否响应一个http请求,以便我可以validation响应是否正常,服务器是否启动。 test: override: # RUN DOCKER CONTAINERS # MongoDB ————- – docker run –name MongoDB -p 27018:27018 -d mongo:3.0 mongod –port 27018 –replSet "rs"; sleep 10 – curl –retry 10 –retry-delay 5 -v http://localhost:27018 有了这个curl它有时工作得很好。 有时它给了我这个错误 : curl –retry 10 –retry-delay 5 -v http://localhost:27018 * About to connect() to localhost port 27018 (#0) * […]

docker中的Django shell模式

我正在学习如何使用官方教程开发Docker中的Django应用程序: https : //docs.docker.com/compose/django/ 我已经成功运行了教程,并且 docker-compose run web django-admin.py startproject composeexample . 创build图像docker-compose up运行应用程序 问题是: 我经常使用python manage.py shell以shell模式运行Django,但是我不知道如何用docker来实现。

如何从git for windows获得docker'objects'在mintty-bash上的完成

我已阅读(并尝试): https : //docs.docker.com/machine/completion/ 但似乎这不是正确的方法。 任何人都知道如何在Mintty(从Git for windows)bash命令行中获得docker完成命令?

在Docker容器中创builddjango超级用户而不input密码

我打算创build超级用户在Django泊坞窗容器与织物。 要在django中创build超级用户,我需要以django交互模式运行这个工具: ./manage.py createsuperuser 而且因为我想让它运行在结构脚本中,所以我觉得这个命令可以避免input密码 echo "from django.contrib.auth.models import User; User.objects.create_superuser('admin', 'admin@example.com', 'pass')" | ./manage.py shell 然后我把它和“docker exec”放在一起,在我的django容器中运行 docker exec container_django echo "from django.contrib.auth.models import User; User.objects.create_superuser('admin', 'admin@example.com', 'pass')" | ./manage.py shell 问题出现在它的左边(包括docker exec)的pipe道(|)pipe道(|)的右边(./ manage.py shell) 这不仅是困难的一部分,考虑把所有这些垃圾放到一个织物运行,这意味着他们需要两端引号。 它会使整个事情非常丑陋。 fabric run: run("docker exec container_django {command to create django super user}") 我仍然在努力如何至less在一个面料运行垃圾工作,但我不知道该怎么做。

Docker将文件从主机复制到容器

我正在尝试从Docker主机复制一组文件到容器。 在直接进入/ var / lib / docker / aufs / …的AUFS系统上工作。 不过,我是Fedora的另一个系统,它使用devicemapper作为存储驱动程序。 在这个系统上,如果我这样做: [root@myhost tmp]# docker inspect -f '{{.Id}}' 393ef4b9f485 393ef4b9f485dafc78037f59bdbeda16d63b8338487248ed25b68cf544f29e24 [root@myhost tmp]# cd /var/lib/docker/devicemapper/mnt/393ef4b9f485dafc78037f59bdbeda16d63b8338487248ed25b68cf544f29e24 [root@myhost 393ef4b9f485dafc78037f59bdbeda16d63b8338487248ed25b68cf544f29e24]# ls -l total 0 [root@myhost 393ef4b9f485dafc78037f59bdbeda16d63b8338487248ed25b68cf544f29e24]# 我什么也得不到 我已经尝试从主机复制文件到Docker容器的所有build议 使用焦油似乎是伟大的,而不是直接去基础FS。 但我不能认为所有的容器都会有焦油。 如果它是相关的,我甚至试图在容器中创build一个文件,但它然后做了一个查找。 -name / var / lib / docker / devicemapper / mnt无效。 任何提示? 编辑1:根据其中一个答案,添加这些约束。 目的是将文件复制到一个没有。 不修改容器构build(Dockerfile),b。 不安装任何ssh或ftp守护进程。 和c。 […]

如何使用Linux shell脚本在Django中创build超级用户?

最近,我正在用Docker部署一个应用程序。我遇到了一个关于如何编写将在Linux上执行的启动脚本的问题。 一个例子是作为同胞: 通常,我们创build这样的超级用户: iMac:mysite yetongxue$ python manage.py createsuperuser Username (leave blank to use 'yetongxue'): root Email address: example@qq.com Password: Password (again): Superuser created successfully. 但是,当使用docker部署应用程序时,我必须将这个命令写入一个脚本,该脚本将在Docker容器启动后执行。如何在脚本中设置用户名,电子邮件和密码? 谢谢! #!/bin/bash python manage.py createsuperuser

通过环境传递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 […]