Questions tagged «docker»

Docker是构建和运行容器的工具。接受有关Dockerfile,操作和架构的问题。有关在生产环境中运行docker的问题可能会在ServerFault(https://serverfault.com/)上找到更好的响应。docker标签很少单独使用,通常与docker-compose和kubernetes等其他标签搭配使用。


14
我怎么知道我的docker mysql容器何时启动并且mysql准备好进行查询?
我正在部署几个不同的Docker容器,第一个是mysql。我想在数据库启动后立即运行脚本,然后继续构建其他容器。该脚本已失败,因为它试图在设置mysql(从此正式mysql容器)的入口点脚本仍在运行时运行。 sudo docker run --name mysql -e MYSQL_ROOT_PASSWORD=MY_ROOT_PASS -p 3306:3306 -d mysql [..] wait for mysql to be ready [..] mysql -h 127.0.0.1 -P 3306 -u root --password=MY_ROOT_PASS < MY_SQL_SCRIPT.sql 有没有一种方法可以等待docker容器内的进入MySQL设置脚本完成的信号?重击睡眠似乎是次佳的解决方案。 编辑:像这样的bash脚本。不是最优雅,最蛮力的,但就像一种魅力。也许有人会觉得有用。 OUTPUT="Can't connect" while [[ $OUTPUT == *"Can't connect"* ]] do OUTPUT=$(mysql -h $APP_IP -P :$APP_PORT -u yyy --password=xxx …
78 mysql  bash  shell  docker 

5
Go编译的二进制文件不会在Ubuntu主机上的高山Docker容器中运行
给定一个二进制文件,使用Go使用GOOS=linuxand编译该二进制文件,并将其GOARCH=amd64部署到docker基于的容器中alpine:3.3,如果Docker引擎主机为Ubuntu(15.10),则该二进制文件将不会运行: sh: /bin/artisan: not found 如果将docker引擎主机(作为的基础)部署在Mac OS X上的VirtualBox VM中,则该相同的二进制文件(针对相同的OS和Arch编译)将运行良好。busyboxalpine 如果容器基于Ubuntu映像之一,则同样的二进制文件也可以很好地运行。 知道这个二进制文件丢失了什么吗? 这是我所做的复制操作(未显示在OS X的VirtualBox / busybox中成功运行): 构建(即使拱门匹配,也将使用标志显式构建): ➜ artisan git:(master) ✗ GOOS=linux GOARCH=amd64 go build 检查它是否可以在主机上运行: ➜ artisan git:(master) ✗ ./artisan 10:14:04.925 [ERROR] artisan: need a command, one of server, provision or build 复制到docker dir,构建并运行: ➜ artisan git:(master) ✗ cp artisan …
78 go  docker  busybox  alpine 

9
standard_init_linux.go:178:exec用户进程导致“ exec格式错误”
码头工人开始抛出此错误: standard_init_linux.go:178:exec用户进程导致“ exec格式错误” 每当我运行带有CMD或ENTRYPOINT的特定docker容器时,不考虑文件的任何更改,然后删除CMD或ENTRYPOINT。这是我一直在使用的docker文件,该文件在大约一个小时前运行良好: FROM buildpack-deps:jessie ENV PATH /usr/local/bin:$PATH ENV LANG C.UTF-8 RUN apt-get update && apt-get install -y --no-install-recommends \ tcl \ tk \ && rm -rf /var/lib/apt/lists/* ENV GPG_KEY 0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D ENV PYTHON_VERSION 3.6.0 ENV PYTHON_PIP_VERSION 9.0.1 RUN set -ex \ && buildDeps=' \ tcl-dev \ tk-dev \ ' …
78 python  linux  bash  docker 

2
Docker端口未公开
我在Docker中设置了一个简单的节点服务器。 Docker文件 FROM node:latest RUN apt-get -y update ADD example.js . EXPOSE 1337 CMD node example.js example.js var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'+new Date); }).listen(1337, '127.0.0.1'); console.log('Server running at http://127.0.0.1:1337/'); 现在建立图像 $ docker build -t node_server . 现在在容器中运行 $ docker run -p 1337:1337 …

8
在Docker Desktop(Windows)中查找数据卷
目前,我正在尝试学习docker,但对于数据量实际存在的位置感到困惑。 我正在使用Windows的Docker Desktop。(Windows 10) 他们在文档中说,在对象上运行docker inspect将为您提供源:https : //docs.docker.com/engine/tutorials/dockervolumes/#locating-a-volume $ docker inspect web "Mounts": [ { "Name": "fac362...80535", "Source": "/var/lib/docker/volumes/fac362...80535/_data", "Destination": "/webapp", "Driver": "local", "Mode": "", "RW": true, "Propagation": "" } ] 但是我没有看到,我得到以下信息: $ docker inspect blog_postgres-data [ { "Driver": "local", "Labels": null, "Mountpoint": "/var/lib/docker/volumes/blog_postgres-data/_data", "Name": "blog_postgres-data", "Options": {}, "Scope": "local" …

3
docker-compose为同一图像创建多个实例
我需要为同一张图片启动多个容器。如果我按如下所示创建我的撰写文件,则可以正常工作。 version: '2' services: app01: image: app app02: image: app app03: image: app app04: image: app app05: image: app 我有什么简单的方法可以提及撰写实例的数量,而不是多次复制和粘贴?

5
将Docker映像推送到Amazon ECS存储库
我是AWS的新手。我想在AWS ECS容器实例上设置私有Docker存储库。我创建了一个名为的存储库name。AWS显示的示例推入命令正在运行。 aws ecr get-login --region us-west-2 docker build -t name . docker tag name:latest ############.dkr.ecr.us-west-2.amazonaws.com/name:latest docker push ############.dkr.ecr.us-west-2.amazonaws.com/name:latest 但是,通过此命令,我构建并推送了一个名为的映像name,我想构建一个名为的映像foo。所以我将命令更改为: docker build -t foo . docker tag foo ###########.dkr.ecr.us-west-2.amazonaws.com/name/foo docker push ###########.dkr.ecr.us-west-2.amazonaws.com/name/foo 这应该可以,但是不能。经过一段时间的重试后,我得到了错误: The push refers to a repository [###########.dkr.ecr.us-west-2.amazonaws.com/name/foo] 8cc63cf4528f: Retrying in 1 second ... name unknown: The repository …

6
在docker下安装时可以回答对话框问题吗?
使用apt-get安装某些软件包时,是否可以以某种方式回答出现在对话框中的问题? 例如,我正在尝试设置包含以下内容的mail-stack-delivery软件包的容器: FROM ubuntu RUN apt-get install -y mail-stack-delivery 但是,在构建时,dockerfile会产生许多错误,这些错误包括: debconf: unable to initialize frontend: Dialog debconf: (TERM is not set, so the dialog frontend is not usable.) debconf: falling back to frontend: Readline debconf: unable to initialize frontend: Readline debconf: (Can't locate Term/ReadLine.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 …

8
如何使用docker-compose播种mongo数据库?
我正在尝试分发在几个链接的容器中运行的一组连接的应用程序,这些容器包括一个mongo数据库,该数据库需要: 分发包含一些种子数据; 允许用户添加其他数据。 理想情况下,数据还将保存在链接的数据卷容器中。 我可以mongo使用mongo不装载任何卷的基本实例(dockerhub映像:psychemedia/mongo_nomount-本质上是不带该VOLUME /data/db语句的基本mongo Dockerfile )和Dockerfile配置的方式将数据放入容器中: ADD . /files WORKDIR /files RUN mkdir -p /data/db && mongod --fork --logpath=/tmp/mongodb.log && sleep 20 && \ mongoimport --db testdb --collection testcoll --type csv --headerline --file ./testdata.csv #&& mongod --shutdown 其中与Dockerfile./testdata.csv位于同一目录(./mongo-with-data)中。 我的docker-compose配置文件包括以下内容: mongo: #image: mongo build: ./mongo-with-data ports: - "27017:27017" #Ideally …

3
我们可以在通过dockerfile构建docker映像时通过cmd行传递ENV变量吗?
我正在执行一项任务,涉及使用Dockerfile以centOs为基础构建docker映像。dockerfile内的步骤之一需要设置http_proxy和https_proxy ENV变量,以便在代理后面工作。 由于此Dockerfile将由具有不同代理的多个团队使用,因此我想避免不必为每个团队编辑Dockerfile。相反,我正在寻找一种解决方案,允许我在构建时传递ENV变量,例如, sudo docker build -e http_proxy = somevalue。 我不确定是否已经有提供此功能的选项。我想念什么吗?

1
验证docker-compose yml文件
有没有简单的方法来验证docker-compose文件的语法等(docker-compose.yml aka fig.yml)而不必正常运行docker? 我正在尝试向构建/测试管道中添加快速检查,以验证我的撰写文件。

5
以非root用户身份在Docker内部运行应用程序
在昨天发布了Shocker的消息之后,似乎Docker容器中的应用程序不应以root用户身份运行。我尝试更新自己Dockerfile以创建应用程序用户,但是更改应用程序文件的权限(虽然仍然是root)似乎不起作用。我猜这是因为可能未将某些LXC权限授予root用户? 这是我的Dockerfile: # Node.js app Docker file FROM dockerfile/nodejs MAINTAINER Thom Nichols "thom@thomnichols.org" RUN useradd -ms /bin/bash node ADD . /data # This next line doesn't seem to have any effect: RUN chown -R node /data ENV HOME /home/node USER node RUN cd /data && npm install EXPOSE 8888 WORKDIR …
77 node.js  docker  lxc 


10
在Ansible中转义双花括号
如何在Ansible 1.9.2中转义双花括号? 例如,如何在以下shell命令中转义大括号? - name: Test shell: "docker inspect --format '{{ .NetworkSettings.IPAddress }}' instance1"
77 docker  jinja2  ansible 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.