Docker 不会附加到图像
Docker will not attach to an image
我有一个 fig.yml 文件用来设置我的 docker 容器。我 运行 通过键入 ./fig up 然后它输出以下内容:
Recreating docker_memcache_1...
Recreating docker_sphinx_1...
Recreating docker_percona_1...
Recreating docker_php_1...
Recreating docker_sa_1...
Attaching to docker_memcache_1, docker_percona_1, docker_php_1
因此,一旦完成,一切都已启动 运行ning。我的问题是由于某种原因它没有附加到我设置的 nginx 容器。 docker ps 命令输出如下:
9bb0c647338e php:latest "/usr/sbin/php-fpm - 2 minutes ago Up 2 minutes 9000/tcp docker_php_1
9f74789bdb15 percona:latest "mysqld" 3 minutes ago Up 3 minutes docker_percona_1
b848d3442bdf memcached:latest "/bin/sh -c memcache 3 minutes ago Up 3 minutes 11211/tcp docker_memcache_1
所以 memcache 图像、php 图像和 percona 图像都很好,但是没有 nginx docker 图像应该有。
下面是我如何设置我的 fig.yml 文件,它基本上是启动所有内容的文件。有没有人对可能发生的事情有任何想法?请注意,我确实将守护程序设置为关闭,因此它不应自动退出。
fig.yml 文件在这里:
sa:
image: nginx
links:
- php:php-fpm
volumes:
- ./svn (path here)
- ./cert:/(path here)
ports:
- "8080:80"
memcache:
image: memcached
hostname: memcached.docker
sphinx:
image: sphinx
hostname: sphinx.docker
percona:
image: percona
hostname: percona.docker
php:
image: php
hostname: php.docker
links:
- memcache:memcache.docker
- sphinx:sphinx.docker
- percona:percona.docker
我还想我会包括我的 nginx Dockerfile 以防万一里面有什么我丢失了非常感谢任何帮助
Nginx Dockerfile
From centos:6.6
RUN yum -y install http://mirror.us.leaseweb.net/epel/6/i386/epel-release-6-8.noarch.rpm
RUN yum -y install nginx && rm /etc/nginx/conf.d/*
CMD ["nginx", "-g", "daemon off;"]
EXPOSE 80 443
COPY sa.conf /etc/nginx/conf.d/
COPY base /etc/nginx/base/
运行 docker ps -a
显示所有容器,而不仅仅是 运行ning 容器。您会看到 docker_sa_1
列为已停止的容器。这是因为它在启动时立即崩溃。不幸的是,发生这种情况时,fig 不会为您显示日志(或自动关闭堆栈)。
运行 docker logs docker_sa_1
查看输出。希望您会收到一条不错的 Nginx 错误消息。如果找不到任何内容,请从 fig.yml
中删除 sa
条目,执行 fig up
以启动其他所有内容,然后 运行
docker run -it --link=docker_php_1:php-fpm -v $PWD/svn:(?) -v $PWD/cert:(?) -p 8080:80 nginx
(您需要用您遗漏的路径位填充 ?
s)这等同于 Fig 所做的,除了我们启动与附加 tty 交互的容器而不是稍后附加。如果您仍然无法收到任何错误消息,运行
docker run -it --link=docker_php_1:php-fpm -v $PWD/svn:(?) -v $PWD/cert:(?) -p 8080:80 nginx /bin/bash
在容器上获得实时 shell。然后尝试自己启动 Nginx 并在它崩溃后挖掘日志文件。
我有一个 fig.yml 文件用来设置我的 docker 容器。我 运行 通过键入 ./fig up 然后它输出以下内容:
Recreating docker_memcache_1...
Recreating docker_sphinx_1...
Recreating docker_percona_1...
Recreating docker_php_1...
Recreating docker_sa_1...
Attaching to docker_memcache_1, docker_percona_1, docker_php_1
因此,一旦完成,一切都已启动 运行ning。我的问题是由于某种原因它没有附加到我设置的 nginx 容器。 docker ps 命令输出如下:
9bb0c647338e php:latest "/usr/sbin/php-fpm - 2 minutes ago Up 2 minutes 9000/tcp docker_php_1
9f74789bdb15 percona:latest "mysqld" 3 minutes ago Up 3 minutes docker_percona_1
b848d3442bdf memcached:latest "/bin/sh -c memcache 3 minutes ago Up 3 minutes 11211/tcp docker_memcache_1
所以 memcache 图像、php 图像和 percona 图像都很好,但是没有 nginx docker 图像应该有。
下面是我如何设置我的 fig.yml 文件,它基本上是启动所有内容的文件。有没有人对可能发生的事情有任何想法?请注意,我确实将守护程序设置为关闭,因此它不应自动退出。
fig.yml 文件在这里:
sa:
image: nginx
links:
- php:php-fpm
volumes:
- ./svn (path here)
- ./cert:/(path here)
ports:
- "8080:80"
memcache:
image: memcached
hostname: memcached.docker
sphinx:
image: sphinx
hostname: sphinx.docker
percona:
image: percona
hostname: percona.docker
php:
image: php
hostname: php.docker
links:
- memcache:memcache.docker
- sphinx:sphinx.docker
- percona:percona.docker
我还想我会包括我的 nginx Dockerfile 以防万一里面有什么我丢失了非常感谢任何帮助
Nginx Dockerfile
From centos:6.6
RUN yum -y install http://mirror.us.leaseweb.net/epel/6/i386/epel-release-6-8.noarch.rpm
RUN yum -y install nginx && rm /etc/nginx/conf.d/*
CMD ["nginx", "-g", "daemon off;"]
EXPOSE 80 443
COPY sa.conf /etc/nginx/conf.d/
COPY base /etc/nginx/base/
运行 docker ps -a
显示所有容器,而不仅仅是 运行ning 容器。您会看到 docker_sa_1
列为已停止的容器。这是因为它在启动时立即崩溃。不幸的是,发生这种情况时,fig 不会为您显示日志(或自动关闭堆栈)。
运行 docker logs docker_sa_1
查看输出。希望您会收到一条不错的 Nginx 错误消息。如果找不到任何内容,请从 fig.yml
中删除 sa
条目,执行 fig up
以启动其他所有内容,然后 运行
docker run -it --link=docker_php_1:php-fpm -v $PWD/svn:(?) -v $PWD/cert:(?) -p 8080:80 nginx
(您需要用您遗漏的路径位填充 ?
s)这等同于 Fig 所做的,除了我们启动与附加 tty 交互的容器而不是稍后附加。如果您仍然无法收到任何错误消息,运行
docker run -it --link=docker_php_1:php-fpm -v $PWD/svn:(?) -v $PWD/cert:(?) -p 8080:80 nginx /bin/bash
在容器上获得实时 shell。然后尝试自己启动 Nginx 并在它崩溃后挖掘日志文件。