简体   繁体   中英

Docker mount from host to remote

I ran a Flask boilerplate app running on Docker using docker run -d -p 80:80 p0bailey/docker-flask and it works ( 192.168.99.100 displayed a page). Next I cloned same app from github and try to mount from host directory into container using:

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

I went to url 92.168.99.100 and got 502 Bad Gateway

What am I doing wrong?

Host is a cent 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

Here's the log

$ 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

-v /Users/username/docker-flask/app:/var/www/app overrides the content of your container with the content of /Users/username/docker-flask/app

If you want to mount /var/www/app without lost the original container files use

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

Then locate the random location of the volume in your host filesystem using

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

Found out this has to do with read-write permission on /app. Switching SELinux to permissive mode fixed issue.

vim /etc/selinux/config

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM