创build了一个docker,安装nginx,python,uwsgi和django。 我如何在虚拟机中testing它?

我已经使用docker创build了以下项目 。

这是Dockerfile

############################################################ # Purpose : Dockerize Django App to be used in AWS EC2 # Django : 1.8.1 # OS : Ubuntu 14.04 # WebServer : nginx # Database : Postgres inside RDS # Python : 2.7 # VERSION : 0.1 ############################################################ from ubuntu:14.04 maintainer Kim Stacks, kimcity@gmail.com # make sure package repository is up to date # this is commented out because it clashes with install build-essential # run echo "deb http://archive.ubuntu.com/ubuntu trusty main universe" > /etc/apt/sources.list run apt-get update # run apt-get upgrade --force-yes -y # install python run apt-get install python --force-yes -y ## install 2.7 run apt-get install python-setuptools --force-yes -y ## for python2.7 or above run apt-get install build-essential --force-yes -y ## run apt-get install python-virtualenv --force-yes -y ## virtual env run apt-get install python-dev --force-yes -y ## because ubuntu 14.04 does not have dev version of python 2 # install nginx run apt-get install \ nginx \ --force-yes -y ## copy the nginx config files COPY ./nginx_configuration/common.conf /etc/nginx/common.conf COPY ./nginx_configuration/fastcgi_params /etc/nginx/fastcgi_params COPY ./nginx_configuration/nginx.conf /etc/nginx/nginx.conf COPY ./nginx_configuration/php.conf /etc/nginx/php.conf COPY ./nginx_configuration/default /etc/nginx/sites-available/default COPY ./nginx_configuration/php.example /etc/nginx/sites-available/php.example COPY ./nginx_configuration/django-app.conf /etc/nginx/sites-available/django-app.conf ## copy the bash_rc over # COPY ./bash_files/.bash_profile /root/.bash_profile run /etc/init.d/nginx restart ######################################## ## Install Django ## and associated python modules ######################################## # Install pip RUN easy_install pip # Add and install Python modules ADD requirements.txt /src/requirements.txt RUN cd /src; pip install -r requirements.txt # Bundle app source ADD ./djangoapp /src ######################################## ## Remove any unwanted packages ######################################## run apt-get autoremove --force-yes -y 

我有一个虚拟机是Ubuntu14.04,所以我运行在客户操作系统的docker。

 docker build -t django18-python27-ubuntu1404 . ## build docker reponame dockerfilepath docker run -ti django18-python27-ubuntu1404 sh ## run the docker and go in 

一旦我在uwsgi --ini uwsgi.ini 里面 ,我就去/src ,然后运行uwsgi --ini uwsgi.ini

我的问题是如何testingdocker容器的djangoapp里面/src

我的主机操作系统是Mac OS X Mavericks。

我的客户操作系统是Ubuntu 14.04。

我的docker运行客户操作系统内。

请指教。

在你的docker文件中定义你将公开的外部访问的网络端口,如下所示:

 EXPOSE 80 

这会将容器的端口80展示给docker。

现在你可以告诉码头到NAT,并将这个端口转发到你的码头主机的一个空闲端口来访问它。 像这样:

 docker run -p 80:80 ... 

这将告诉码头将主机端口80映射到容器端口80。

请注意,这基本上是

 host-port:container-port 

在此之后,您可以打开一个浏览器,输入您的Docker主机(Ubuntu服务器)的端口80的IP,瞧你在你的容器;)