Tag:

如何避免在使用docker commit时键入容器ID?

使用以下语法从容器创build新的泊坞窗图像: $ docker commit -m "commit message" -a "author" \ #containerid user/imagename:tag 我知道你可以得到最后一个容器ID: $ docker ps -l 但是,这给了我详细的输出。 我如何正则expression容器ID或input一个命令来提取只是最后一个容器的ID,所以我不必手动input到我的提交信息?

variablesreplace无法在Docker撰写的Windows 10上运行

我想知道是否我偶然发现了一个bug,或者有什么东西没有正确logging有关Windows上的variablesreplace与Docker机器和组合(已安装版本的docker是1.11.1)。 如果我为一个如下所示的yml文件运行“docker-compose up”命令: volumes: – ${FOOBAR}/build/:/usr/share/nginx/html/ 而这个variables不存在泊坞窗撰写将正确地抱怨它: The foobar variable is not set. Defaulting to a blank string. 但是,当我将其更改为现有的环境variables时: volumes: – ${PROJECT_DIR}/build/:/usr/share/nginx/html/ 它然后将不正确地启动容器,并显示以下错误(试图访问nginx容器会给你一个主机是无法访问的消息): ERROR: for nginx rpc error: code = 2 desc = "oci runtime error: could not synchronise with container process: not a directory" 如果我在Docker Quickstart Terminal中运行echo命令,它将输出我在环境variables中设置的正确path。 如果我将$ {PROJECT_DIR}replace为环境variables值,容器将正确运行。 我得到相同types的错误消息,如果我尝试使用官方的PHP图像,而不是正式的nginx图像的环境variables。 在这两种情况下,如果我用$ {PROJECT_DIR}文本replace环境variables的内容,docker撰写文件就可以工作。 那么这是一个错误还是我错过了什么? 经过一番mu […]

如何使用docker在同一个域上为每个用户创buildlinux映像

这是我希望能够做到的(我甚至不知道在网上找什么文档)。 docker run –name userXXX -d ubuntu docker run –name userYYY -d ubuntu docker run –name userZZZ -d ubuntu 这样我就可以将一个rootlogin交给一个域的容器。 喜欢: ssh root@userXXX.somedomain.foo ssh root@userYYY.somedomain.foo ssh root@userZZZ.somedomain.foo 这甚至有可能吗? 我想象我需要设置DNS somedomain.foo 并在同一个dockernetworking上拥有所有的主机(这似乎足够合理)。 我似乎无法弄清楚的问题是正确的路由,其中​​hostname.somedomain.foo =>docker集装箱 每个容器将需要它自己的IP注册使用该主机/ IP更新DNSloggingDNS需要是somedomain.foo的DNS权限之一,我的真实networking上的所有机器都知道。 有没有人做过这样的事情? 如果这个问题更适合超级用户,那么让我知道,我可以移动它

使用docker撰写安装nginxdynamic模块

通常在nginx中编译第三部分模块,你应该使用这个命令: ./configure –add–module=path/to/your/new/module/directory 然后使用: make 最后: make install 但是使用docker我不能进入nginxpath并运行这些命令。 我怎么能添加“configuration”命令到我的docker-compose.yml文件? 编辑:我试图创build一个简单的Dockerfile像这样: FROM nginx RUN ./configure –add-module=./module/ make && \ make install 并将其包含到我的docker-compose.yml中。 它给了我这个错误: /bin/sh: 1: ./configure: not found The command '/bin/sh -c ./configure –add-module=./module/' returned a non-zero code: 127 我也尝试使用“configuration”而不是“./configure”,但结果相同。 我不知道如何设置configuration命令。

Docker容器无法连接到另一个Docker容器打开的端口

我有两个容器运行:c1和c2。 C1正在监听端口2181,C2正在连接到端口2181 问题是C2无法连接到所述端口上的C1,我不知道为什么。 当我运行连接到C1不在容器中的代码时,它工作正常。 所以我知道C1正在运行,端口正确显示。 只是当我把应用程序放在自己的容器中时,端口不再可见。 我已经尝试了C2内的LSF,并没有列出,这是为什么它失败了。 任何线索我需要看下一个将不胜感激。 我正在使用docker-compose,因此默认情况下容器应该在同一个networking组中: 这是我的撰写文件: version: '2' services: c1: build: . volumes: – .:/code depends_on: – c2 c2: image: jplock/zookeeper ports: – "2181:2181" – "2888:2888" – "3888:3888" 在C1中,启动器使用URI localhost:2181

docker错误:卷指定不存在的驱动程序内存

根据文档,有一个docker卷的“inmemory”驱动程序: https : //docs.docker.com/registry/storage-drivers/inmemory/ 纯粹为了testing目的,您可以使用内存存储驱动程序。 该驱动程序是storagedriver.StorageDriver接口的一个实现,它使用本地内存来存储对象。 但是当试图像这样使用它: volumes: ui-tmp-memory: driver: inmemory 它给了我这个输出: Creating volume "myapp_ui-tmp-memory" with inmemory driver ERROR: Volume ui-tmp-memory specifies nonexistent driver inmemory 我错过了什么,或者我需要安装“inmemory”驱动程序吗?

在Windows上运行docker镜像的结果是“oci runtime error:exec:”bash“:可执行文件在$ PATH中找不到。

我在Windows上运行Docker(“Docker Toolbox”,而不是“Docker for Windows”)。 我已经用一个rails应用程序在里面构build了一个图像。 它可以在我的Mac OS上正常工作,但会在Windows上进行生产。 在两台机器上使用Docker 1.12和docker-machine 0.8.0。 当我创build一台机器并尝试从图像运行容器时,我这样做: docker run -it myRepo:myTag bash 这使我在Mac OS上打开了一个交互式terminal,但Windows 7和Windows Server 2011都响应: “来自守护进程的错误响应:oci运行时错误:exec:”bash“:在$ PATH中找不到可执行文件。 我通过Docker快速入门terminal使用MINGW64 shell,但是旧的cmd.exe返回相同的结果。 有人可以帮我解决这个问题吗? 我已经尝试了几个小时来find一个解决scheme,但是Windows的答案太less了。 先谢谢你!

Docker和微服务

我正在开发一个使用微服务的系统,为自己学习新技术。 一个服务在php(laravel)+ postgres,另一个在nodejs(快速)+ mongo,另一个在php(symfony)+与其他postgres服务器,我想把所有这些服务包装在docker。 我看了一下这个决定https://github.com/LaraDock/laradock ,但是只有一个容器工作区和一个容器来postgres,我该如何纠正docker?

使用docker-compose自动构build(应用程序+ mySQL服务器)

使用mySQL为我的Web应用程序构build自动构build时遇到一些问题。 我将使用https://github.com/ehazlett/docker-sample-java-mysql-tomcat中的示例。 这是我的fig.yml文件: db: image: orchardup/mysql environment: MYSQL_USER: java MYSQL_PASSWORD: java MYSQL_DATABASE: javatest ports: – "3306" dbinit: image: orchardup/mysql entrypoint: /bin/bash volumes: – .:/host command: -c "sleep 4; mysql -u java –password=java -h mysql javatest < /host/init.sql; exit 0" links: – db:mysql app: build: . links: – dbinit – db:mysql ports: – "8080" 而这个简单的Dockerfile : […]

如何检查本地URL是否可达

我在我的本地机器上部署Docker容器。 他们的方式,我检查他们是否成功部署是通过去我的浏览器和键入http://192.168.99.105:7474/browser 。 我想这样做以编程方式,所以我跟着这个问题的代码检查一个URL是否可达 – 帮助优化一个类 。 但是,当我尝试它,我得到一个System.Net.WebException {"The remote server returned an error: (504) Gateway Timeout."} 。 它工作正常,但我得到一个HttpStatusCode.OK如果该url是https://en.wikipedia.org/wiki/YouTube 这是我的代码: private bool UrlIsReachable(string url) { //https://en.wikipedia.org/wiki/YouTube HttpWebRequest request = WebRequest.Create("http://192.168.99.105:7474/browser") as HttpWebRequest; request.Timeout = 600000;//set to 10 minutes, includes time for downloading the image request.Method = "HEAD"; try { using (HttpWebResponse response = request.GetResponse() as […]