Articles of Docker

如何在CentOS7上升级Docker(到1.10.0)?

Docker 1.8.2-10.el7.centos已经安装,能够在CentOS7上运行。 为了升级docker,阅读了这篇文章 ,并发布了以下命令: curl -L https://get.docker.com/builds/Linux/x86_64/docker-latest > /usr/bin/docker; chmod +x /usr/bin/docker curl -L https://raw.githubusercontent.com/docker/docker/master/contrib/init/systemd/docker.service > /usr/lib/systemd/system/docker.service curl -L https://raw.githubusercontent.com/docker/docker/master/contrib/init/systemd/docker.socket > /usr/lib/systemd/system/docker.socket 问题 docker工人启动时: systemctl start docker 它似乎挂起和/ var / log / messages指示: Feb 11 00:22:01 localhost systemd: Device dev-disk-by\x2duuid-f00f4f0a\x2dba57\x2d468b\x2dba82\x2d72f1bb087bbb.device appeared twice with different sysfs paths /sys/devices/virtual/block/loop0 and /sys/devices/virtual/block/dm-6 Feb 11 00:22:05 localhost docker: time="2016-02-11T00:22:05.977110830+01:00" […]

重新导入的docker镜像/容器中的“No command specified”

我想从一台机器拿一个docker容器,并在另一台机器上运行,遇到这个错误:“ 来自守护进程的错误响应:没有指定命令 ”。 以下是显示问题的简单示例: docker –version Docker version 1.10.1, build 9e83765 docker pull ubuntu docker run –name u1 -dit ubuntu:latest docker export -o exported u1 docker stop u1 docker rm u1 docker import exported ubuntu:imported docker run –name u1 -dit ubuntu:imported docker: Error response from daemon: No command specified. 在这个例子中,我们首先拉一个图像(ubuntu),并成功地创build/运行容器u1 。 然后,我们将该容器导出到一个文件( exported ),停止/删除容器,将文件导入到一个新的映像( ubuntu:imported […]

如何在CoreOS的NFS共享上放置Docker镜像?

我已经安装了默认使用100GB大小的环回设备的CoreOS,并且我已经很容易地达到了这个限制。 我的第一个想法是使用NFS将所有的图像放在我的NAS之上,只需将它放在/var/lib/docker目录的顶部就可以了,没有任何成功。 现在我已经发现这篇文章 ,看起来像docker创build任何forms的块设备,以任何forms的存储之上,以便使用它的CoW快照,这可能是为什么我没有成功,我只是简单地安装NFS共享在图像目录之上。 这有点吓到我了。 为什么不使用纯NFS与存储的本机快照? 我希望这样做有很好的解释。 无论如何,我需要做这个怪胎的事情。 我是新来的docker和CoreOS,不知道如何正确地做到这一点。 所以问题是: 如何挂载NFS共享并将其用于CoreOS上的所有映像?

如何在特定的远程端口上提供服务(任何服务)

我正在使用docker和docker-compose一个服务,这是另外几个人的组合。 由于内部服务是相互服务的,所以必须有一个预先确定的优先级来启动它们。 我发现最简单的方法是使用启动脚本来运行每个服务(在他们指定的容器中)在实际运行容器的服务之前检查先决条件。 这是我现在使用的: #!/bin/sh cd /external-indexer echo "Waitng for RabbitMQ on $RMQ_HOST:$RMQ_PORT" until curl http://$RMQ_HOST:$RMQ_PORT/ > /dev/null 2>&1 do echo "$(date) – RabbitMQ is not ready yet" sleep 1 done echo "$(date) – RabbitMQ is ready" echo "Waitng for PostgreSQL on $PG_HOST:$PG_PORT" until wget $PG_HOST:$PG_PORT -t 1 2>&1 | grep " connected" do echo […]

SELinux阻止由于Docker对/ var / log的访问

我有一个Docker容器应该读取日志,包括主机本身的日志。 所以我使用z标志挂载卷/var/log 。 这改变了/var/log里面的文件的SELinux上下文,这阻止了我通常的进程访问这些文件,最终的结果是我无法在本地login: kernel:type = 1400 audit(14958482):avc:denied {open} for pid = 12345 comm =“agetty”name =“/ var / log / wtmp”dev =“dm-6”ino = 134 scontext = system_u:system_r :getty_t:s0-s0:c0.c1023 tcontext = system_u:object_r:svirt_sandbox_file_t:s0 tclass = file 这里最好的做法是什么? closuresSELinux,而它摆脱了这个问题,是不是一个选项。

创build一个Windows 10映像用作泊坞窗容器

我正在尝试创build一个Windows 10映像为了dockerize现有的遗留应用程序。 基于非常好的原因,基本映像必须是Windows 10 而不是 Windows Server。 我怎么去做这个? 我想到的是: 1)创build我的香草Windows安装为Hyper-V机器 2)安装应用程序 3)closures这个VM 4)将生成的VHDX转换为Windows映像(WIM)文件 5)以某种方式使用这个作为docker的基础图像 我在正确的道路上?

configurationphp-fpm来访问docker中的环境variables

我在Docker容器中运行php7-fpm。 但是我的PHP脚本不能访问我的docker-compose文件中设置的环境variables。 getenv('MY_ENV_VAR')返回FALSE 。 我已经改变了/etc/php/7.0/fpm/pool.d/www.conf以包括clear_env = no并重新启动与service php7.0-fpm restart但我的环境variables开始不存在。 我也尝试编辑/etc/php/7.0/fpm/php.ini包含行variables_order = "EGPCS" 。 当我进入我的容器上的bash shell时,我可以看到我的variables存在。 这只是他们不能在我的PHP脚本访问。 我错过了什么?

如何开启在Docker容器中运行的Vault服务器

我有一个docker compose安装程序,成功启动consul(config 这里 )。 保险柜似乎开始好,除了在设置TTL(日志在这里 )的一些错误。 进一步来说,领事似乎在试图达到/v1/agent/check/fail/vault:127.0.0.1:8200:vault-sealed-check?note=Vault+Sealed时/v1/agent/check/fail/vault:127.0.0.1:8200:vault-sealed-check?note=Vault+Sealed 。 显然'vault:127.0.0.1:8200:vault-sealed-check' status is now critical 。 consul1 | 2016/11/05 20:50:04 [DEBUG] agent: Check 'vault:127.0.0.1:8200:vault-sealed-check' status is now critical consul1 | 2016/11/05 20:50:04 [DEBUG] agent: Service 'vault:127.0.0.1:8200' in sync consul1 | 2016/11/05 20:50:04 [DEBUG] agent: Service 'consul' in sync consul1 | 2016/11/05 20:50:04 [DEBUG] agent: Check 'vault:127.0.0.1:8200:vault-sealed-check' in […]

Ubuntu apt-get update 403在Azure虚拟机上的Docker中禁止

我正在尝试build立一个azure色的docker。 Dockerfile像这样开始 FROM ubuntu:16.04 RUN apt-get update && apt-get install -y libcurl4-openssl-dev libmysqlclient-dev libssl-dev 更新命令与以下输出崩溃 17:48:54 Step 3 : RUN apt-get update && apt-get install -y libcurl4-openssl-dev libmysqlclient-dev libssl-dev 17:48:54 —> Running in 5a07e406e05f 17:48:54 Ign:1 http://archive.ubuntu.com/ubuntu xenial InRelease 17:48:54 Ign:2 http://archive.ubuntu.com/ubuntu xenial-updates InRelease 17:48:54 Ign:3 http://archive.ubuntu.com/ubuntu xenial-security InRelease 17:48:54 Ign:4 http://archive.ubuntu.com/ubuntu xenial Release 17:48:54 […]

Ecs服务不会更新任务定义

在ecs集群中,我有一个运行2个ec2实例的服务。 而我更新任务定义采取新的docker形象。 但即使有新的任务定义,旧的任务定义仍在运行。 我已经使用以下命令来更新任务定义和服务。 aws ecs register-task-definition –family service90-task –cli-input-json file://service90-task.json aws ecs update-service –cluster service90-cluster –service service90-service –desired-count 0 TASK_REVISION=`aws ecs describe-task-definition –task-definition service90-task | egrep "revision" | tr "/" " " | awk '{print $2}' | sed 's/"$//'` aws ecs update-service –cluster service90-cluster –service service90-service –task-definition service90-task:${TASK_REVISION} –desired-count 2 我尝试了几次,但无法弄清楚我出错的地方。 我想让ecs服务运行新的任务定义而不是旧的。