Tag: docker devops

在Docker中的竹代理

我是新来的CI世界和竹子。 我想运行一个docker容器,但是我得到的错误说 无法在非ttyinput中启用tty模式 这是我的docker运行命令在makefile中的样子 docker run –rm –entrypoint /bin/bash -i -t -v $(ROOT_DIR):/app $(APP_NAME) 这是我的脚本configuration的屏幕截图:

何时在Docker中使用-type d-exec chmod 750/640

我已经开始使用Docker进行本地开发,从将Mac上的所有内容安装到容器。 通过一些项目,我经常会看到下面的shell命令,特别是 find /www -type d -exec chmod 750 {} \; \ find /www -type f -exec chmod 640 {} \; 首先,他们试图达到什么目标,其次是命令的实际意义,最后是为什么/何时需要使用这个命令? 我最近复制和修改了另一个项目,发现把这些命令取出似乎没有什么区别(公平的,它不再是基于相同的基本容器,但仍然)。 任何启蒙的一线将不胜感激。 EDITS: 在下面的注释中,这个方便的链接来解释shell告诉我们:What:find/www所有文件夹并执行chmod命令,将权限更改为750 – 仍然不确定是否为750,更重要的是为什么要这么做。

无法用文件/etc/docker/daemon.jsonconfigurationDocker守护进程:EOF

我是docker工人,并不能理解这些错误。 所以,请让我知道是否需要更多的信息。 `$ docker –version` Docker version 1.12.6, build 88a4867/1.12.6 `$ docker info` Cannot connect to the Docker daemon. Is the docker daemon running on this host? `$sudo dockerd` FATA[0000] unable to configure the Docker daemon with file /etc/docker/daemon.json: EOF `$sudo systemctl start docker` Job for docker.service failed because the control process exited with error […]

Docker容器和主机中的不同文件所有者

我面临着一个与Docker用户相关的问题。 我使用以下命令作为gitlab-runner运行我的容器: docker run –name testes_cashlink –hostname testes_cashlink –user gitlab-runner –privileged -t -v $DIR_TESTES:/cashlink_host -v $DIR_BATS:/bats -v $DIR_PROJETO:/cashlink_war docker-cashlink-ci /bats/run.sh gitlab-runner容器内创build的文件显示拥有者gitlab-runner ,然而,相同的文件在我的主机上显示为拥有者roggerfernandes 。 gitlab-runner必须是在Docker容器以及主机中创build的文件的所有者。

如何在Docker中侦听端口?

我试图configuration一个docker文件来运行一个脚本,一旦准备就绪。 基本上我希望我的微服务等待另一项服务的启动。 我正在阅读一本书中的教程,所以我有这个dockerfile: FROM openjdk:8-jdk-alpine RUN apk update && apk upgrade && apk add netcat-openbsd ARG JAR_FILE ADD target/${JAR_FILE} /usr/share/theexplorer/theexplorer.jar ADD run.sh run.sh RUN chmod +x run.sh CMD ./run.sh EXPOSE 8761 我有这个脚本(run.sh): echo "********************************************************" echo "Waiting for the configuration server to start on port $CONFIGSERVER_PORT" echo "********************************************************" while ! `nc -z configserver $CONFIGSERVER_PORT `; do […]

docker容器中的blktrace输出错误

我的docker容器的基本形象是Ubuntu的,我运行它的完整权限选项,这意味着在运行命令我使用这些开关: –cap-add=SYS_ADMIN –security-opt apparmor:unconfined 我想用下面的命令使用blktrce: sudo blktrace -d / -a issue -o – | blkparse -f "%p %T.%9t %D %S ^C %d\n" -i – >stream.out 但是,第一次使用这个命令时,我得到这个错误: Debugfs is not mounted at /sys/kernel/debug 我search,发现这个解决scheme ,导致使用这个命令: mount -t debugfs none /sys/kernel/debug 之后,当我再次使用blktrace命令,我得到这个错误: BLKTRACESETUP(2) / failed: 25/Inappropriate ioctl for device Thread 1 failed open /sys/kernel/debug/block/(null)/trace1: 2/No such file […]

从Heroku切换到Docker平台的Cycle.io问题

好的,我是一个全面的noob在devops,但请忍受我,我尽我所能解释我的困境。 现在我有一个Java应用程序(目前托pipe在heroku上),代码在GitHub中可见。 可见的代码不能直接部署。 有2-3个像applications.properties这样的特权文件,其中包含我们的一些其他的Auth文件等,由于明显的安全原因,这些文件不能放在GitHub上。 我们还使用Heroku的ClearDB插件提供给我们的MySQL数据库。 现在的解决方法是这些文件只存在于Heroku git remote中,并且设置为去。 无论何时我们想重新部署,我们切换到Heroku远程,从主服务器拉代码更改,并推动它自动部署。 现在,我们正在从Heroku转移到Cycle.io或Amazon Web Services 。 build立一个AWS将是相当直接的,但是Cycle.io使用docker镜像。 我在这里有几个问题。 Cycle.io为我们提供了一个部署,我没有看到任何提供的数据库的讨论。 我们从哪里得到一个数据库? 我们有什么select? Cycle.io允许我们创buildEnvironments 。 去引用 环境允许用户组织相关的容器组。 创build环境时,Cycle会自动创build一个专用networking来连接内部的容器。 这是否设置某种Linux环境,我可以设置一个MySQL数据库? 是否必须为MySQL映像设置Docker映像,并允许代码映像与其通信? 如果我们考虑为cycle.io使用Docker镜像,那么最好的工作stream程是什么? 会是这样的吗? 在我的系统上build立一个docker图像 将其推送到Docker Hub到一个私有存储库,并允许与Docker集线器集成的cycle.io从那里接收它 周期说 通过两个简单的步骤来部署容器:只需从Docker Hub或任何Git仓库中提取生产就绪的镜像,然后单击导入镜像。 我如何在GitHub上托pipeDocker镜像。 我的意思是你不应该在GitHub上托pipe文件吗? Docker Hub更有意义。 或者这是否意味着它将获取代码并将其编译为泊坞窗图像? 拥有像Heroku一样的“私人”git分支的最佳方式是什么? 我知道我想添加一个私人的远程,但我喜欢怎么做呢? 我应该让公共分支机构保持私人文件的私人保pipe箱吗?

如何通过手动启动的hyperkit来访问docker守护进程?

我使用以下命令启动hyperkit ./com.docker.hyperkit -m 8G -c 4 -u -s 31,lpc \ -s 0:0,hostbridge \ -s 2:0,virtio-vpnkit,path=/tmp/ethernet \ -s 3:0,virtio-net \ -s 4,virtio-9p,path=./s40,tag=db \ -s 5,virtio-9p,path=./s51,tag=port \ -s 6,virtio-rnd \ -s 7,virtio-sock,guest_cid=3,path=/Users/os/myapp/,guest_forwards=2375 \ -l com1,autopty=tty -A \ -f kexec,vmlinuz64,initrd.img,earlyprintk=serial console=ttyS0 但是我不能访问docker守护进程(也不是socket或者tcp)。

从我的docker群启用外部networking访问

我有一个docker群在我的环境中运行。 到目前为止,每个服务实例都可以看到其他实例。 问题是,这个服务应该访问一个DMZ数据库(我没有太多的成功)。 所以,我有一个覆盖networking运行的docker群,是否有任何修改,我可以做,使这个服务到达外部数据库? 今天我得到了这个exception:“connect timed out。validation连接属性确保SQL Server的一个实例在主机上运行,​​并在端口上接受TCP / IP连接。确保到端口的TCP连接是不被防火墙阻挡“。 我的服务创造: sudo docker service create –name myimage_swarm –network=myoverlaynetworkwithscopeswarm –mount … -p 9091:8080 myimage 我的networking NETWORK ID NAME DRIVER SCOPE 7a840b9be53e bridge bridge local d2752a80d7e8 docker_gwbridge bridge local 1oherstrwm3y myoverlaynetworkwithscopeswarm overlay swarm e975164865ba host host local 7a4j98xz6w2s ingress overlay swarm 3811761c92ed none null local 提前致谢。

如何正确检查是否安装了Symfony应用程序?

在我们的Dockerfile的entrypoint.sh我需要检查(实际上是数据库),看看是否有一个应用程序当前安装,如果不运行一个php app/console命令。 这是我目前的做法: CHECK=$(php app/console doctrine:query:sql "SELECT * FROM user" -q) if [ $? -ne 0 ]; then php app/console vendor:install fi 哪个不舒服 还有其他什么方法来检查这个? 注意数据库是由第三方MySql代理服务创build的。 所以我无法检查数据库的存在,因为永远是真的。