2016-07-28 108 views
0

我运行了一个在Docker上运行的Flask样板应用程序,使用docker run -d -p 80:80 p0bailey/docker-flask 并且它可行(192.168.99.100显示了一个页面)。接下来,我从github克隆相同的应用程序,并尝试从主机目录挂载到容器使用:从主机到远程的Docker挂载

docker run -d -p 80:80 -v /Users/username/docker-flask/app:/var/www/app p0bailey/docker-flask 

我去URL 92.168.99.100并得到502 Bad Gateway

我在做什么错?

主机是一分钱OS 7

$ docker ps -a 
CONTAINER ID  IMAGE     COMMAND     CREATED    STATUS    PORTS    NAMES 
721e7cfac4de  p0bailey/docker-flask "/usr/bin/supervisord" 10 seconds ago  Up 8 seconds  0.0.0.0:80->80/tcp stoic_newton 

这里的日志

$ docker logs 721e7cfac4de 
/usr/lib/python2.7/dist-packages/supervisor/options.py:295: UserWarning: Supervisord is running as root and it is searching for its configuration file in default locations (including its current working directory); you probably want to specify a "-c" argument specifying an absolute path to a configuration file for improved security. 
    'Supervisord is running as root and it is searching ' 
2016-07-28 21:14:32,788 CRIT Supervisor running as root (no user in config file) 
2016-07-28 21:14:32,788 WARN Included extra file "/etc/supervisor/conf.d/supervisord.conf" during parsing 
2016-07-28 21:14:32,808 INFO RPC interface 'supervisor' initialized 
2016-07-28 21:14:32,808 CRIT Server 'unix_http_server' running without any HTTP authentication checking 
2016-07-28 21:14:32,808 INFO supervisord started with pid 1 
2016-07-28 21:14:33,812 INFO spawned: 'nginx' with pid 10 
2016-07-28 21:14:33,813 INFO spawned: 'uwsgi' with pid 11 
2016-07-28 21:14:33,869 INFO exited: uwsgi (exit status 1; not expected) 
2016-07-28 21:14:34,908 INFO success: nginx entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 
2016-07-28 21:14:34,909 INFO spawned: 'uwsgi' with pid 16 
2016-07-28 21:14:34,915 INFO exited: uwsgi (exit status 1; not expected) 
2016-07-28 21:14:36,920 INFO spawned: 'uwsgi' with pid 17 
2016-07-28 21:14:36,926 INFO exited: uwsgi (exit status 1; not expected) 
2016-07-28 21:14:39,934 INFO spawned: 'uwsgi' with pid 18 
2016-07-28 21:14:39,942 INFO exited: uwsgi (exit status 1; not expected) 
2016-07-28 21:14:40,943 INFO gave up: uwsgi entered FATAL state, too many start retries too quickly 
+0

什么是'92.168.99.100'?你确定你的容器正在监听该系统上的端口80吗?你确定容器甚至在运行吗?向我们展示您的诊断步骤以及您所看到的任何错误。 – larsks

+0

@larsks我用'docker ps -a'的输出更新了问题以显示它的运行 – DevEx

+0

@larsks我也给它添加了日志 – DevEx

回答

0

发现了这个有上/应用读写权限做定位您的主机的文件系统卷的随机位置。 将SELinux切换为宽容模式固定问题。

vim /etc/selinux/config 

#look for line SELINUX and set to permissive 
SELINUX=permissive 
+0

尽管我没有提供Mac OS – DevEx

0

-v /Users/username/docker-flask/app:/var/www/app覆盖你的容器组成。如果要安装/var/www/app/Users/username/docker-flask/app

的内容的内容丢失原始容器文件使用

docker run -d -p 80:80 -v /var/www/app p0bailey/docker-flask 

然后使用

docker inspect -f "{{json .Mounts}}" development-phase \ 
| jq '.[] | select(.Destination | contains("/var/www/app"))' 
+0

但我确实想挂载'/ Users/username/docker-flask/app',因为计划是稍后进行更改和部署。 – DevEx

+0

你可以使用'docker cp'或者以前在'/ Users/username/docker-flask/app'中复制'/ var/www/app'(在容器中)的内容(参见https://github.com/p0bailey/docker-flask/tree/master/app) –