Docker复制并更改所有者

给定以下的Dockerfile FROM ubuntu RUN groupadd mygroup RUN useradd -ms /bin/bash -G mygroup john MKDIR /data COPY test/ /data/test data RUN chown -R john:mygroup /data CMD /bin/bash 在我的testing目录,这是复制我已经设置文件权限为770。 如果我在我的容器中执行su john ,我无法访问我的testing目录中的任何文件或子目录。 看起来这个问题与aufs文件系统中的所有权有关,在这里复制的目录仍然由root拥有,权限被设置为770。 有没有解决这个问题正确设置权限? 可以在复制之前将原始目录的权限设置为容器用户的uid。 但是这看起来更像是一个黑客。

如何自定义Elastic Beanstalk上的docker run命令?

这是事情,我需要告诉Docker不要集装箱的networking,因为它需要连接到一个VPN(企业专用DB)内的MongoDB。 有一个Docker命令,让我做到这一点:– –net=host 。 在这里引用。 所以,例如,当我的本地机器上运行容器,我会做这样的事情: docker run –rm -it –net=host [image-name]:[version] bash -il 而这个命令将会诀窍。 由此,我可以连接到“私人”的MongoDB。 所以,我的问题是:有没有一种方法定制Elastic Beanstalk上单个Docker环境的–net=host docker run命令,以便我可以添加–net=host ? 我已经尝试使用container_commands到config.yml文件来添加该指令,但我不认为这是我所需要的,这里是一个片段: container_commands: 00-test_command: command: bundle exec thin –net=host 01-networking-fix: command: "docker run –rm -it –net=host [image-name]:[version] bash -il"

任何CI服务是否允许您构buildDocker容器并使用Docker构buildcaching?

我有一堆Docker容器,都使用docker-compose(之前的图)来连接起来。 我发现自称为“Docker CI”服务的服务通常只是在谈论使用Docker来运行他们的构build工作人员。 我想要一个持续的集成服务,在运行之间保留Docker构buildcaching,而不是启动一个全新的工作/文件系统/构build上下文。 否则,build立绝对永远。 理想的pipe理(与https://github.com/groupon/DotCi不同,CircleCI没有随时可用的构build数据库)。 我发现的唯一的东西就是TeamCity(老的,你不能像使用CircleCI一样容易地在yaml文件中编译任务,你必须维护基础设施等)。 Quay.io没有提供像CircleCI和Travis这样的数据库,所以你必须分叉dev和prod,并在容器内部安装一个,并在容器构build期间运行unit testing(例如 – 你不能产生一个未build成的容器debugging的东西!)。 如何在Docker容器集群上运行持续集成?

如何在Docker容器上运行主机上的shell脚本?

如何从docker集装箱控制主机? 例如,如何执行复制到主机bash脚本?

如何知道docker是否已经login到dockerregistry服务器

我不确定是否已经通过使用cmd:docker loginlogin到了cmd行的dockerregistry。 你怎么能testing或看看你是否login,而不试图推?

访问运行在Docker容器上的Jupyter笔记本

我用python库和Jupyter创build了一个docker镜像。 我使用选项-p 8888:8888启动容器,以链接主机和容器之间的端口。 当我在容器中启动Jupyter内核时,它在localhost:8888上运行(并且没有find浏览器)。 我用命令jupyter notebook 但是从我的主机,在主机浏览器中,我必须使用什么IP地址与Jupyter一起工作? 用ifconfig命令,我findeth0 , docker , wlan0 , lo … 谢谢 !

不同的env文件,但是与Docker Compose相同的yml?

我发现我有多个环境(例如test和prod)是相当普遍的,但是我希望启动的Docker容器在两种环境中都是相同的。 唯一的区别是我想使用env-file指定的应用程序configuration。 因为我有他们之间的多个容器和依赖关系,我想使用docker-compose 。 但是afaik我只能在docker-compose.yml文件中指定一个env-file文件(请参阅文档 )。 如果是这种情况,那么我需要将我的原始docker-compose.yml克隆到两个不同的文件(一个用于testing,一个用于prod),以指向不同的env文件。 这意味着我必须维护两个docker-compose.yml文件,而不是一个,如果我做任何更改,我需要更新这两个文件。 这真的是根据devise? 为什么–env-file docker-compose不能让我指定–env-file当我做–env-file docker-compose up或docker-compose run ?

Docker使用gosu和USER

Dockertypes总是有一个USER命令来运行一个特定用户的进程,但总的来说很多东西都必须作为ROOT来运行。 我已经看到很多使用ENTRYPOINT的图像去ENTRYPOINT进程运行。 我对gosu的需求还是有点困惑。 用户不够用? 我知道Docker 1.10在安全性方面已经发生了很大的变化,但我仍然不清楚在docker容器中运行一个进程的推荐方式。 有人可以解释我什么时候使用gosu vs. USER吗? 谢谢 编辑: Docker 最佳实践指南并不十分清楚:它说如果进程可以无特权运行,使用USER ,如果需要sudo,则可能需要使用gosu 。 这是令人困惑的,因为可以在Dockerfile各种东西安装为ROOT,然后创build一个用户并给予适当的权限,最后切换到该用户并以该用户身份运行CMD 。 那么为什么我们需要sudo或gosu ?

如何设置docker mongo数据量

我想要使​​用Dockerizing MongoDB并将数据存储在本地卷中。 但是..失败了… 它有mongo:最新的图像 kerydeMacBook-Pro:~ hu$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE mongo latest b11eedbc330f 2 weeks ago 317.4 MB ubuntu latest 6cc0fc2a5ee3 3 weeks ago 187.9 MB 我想将单声道数据存储在〜/ data中。 所以— kerydeMacBook-Pro:~ hu$ docker run -p 27017:27017 -v ~/data:/data/db –name mongo -d mongo f570073fa3104a54a54f39dbbd900a7c9f74938e2e0f3f731ec8a3140a418c43 但是…它不工作… docker ps – 没有守护进程的mongo kerydeMacBook-Pro:~ hu$ docker […]

Docker数据卷容器 – 我可以在群集中共享吗?

我知道如何使用–volumes-from创build一个数据卷容器并将其装载到多个其他容器,但是我对它的用法和限制有几个问题: 情况:我正在寻找使用数据容器来存储用户上传的图像为我的Web应用程序。 这个数据卷容器将被运行Web前端的许多其他容器使用/挂载。 问题: 数据卷容器可以使用/安装在Docker群中其他主机上的容器中吗? performance如何? 这是build议这样的结构? 有没有更好的方法来处理跨容器和主机(如NFS)的永久资源共享?