我已经使用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,瞧你在你的容器;)