使用Docker的一些Tips

点击量:9

Docker是一种强大的devops工具,使用其无论是作为开发环境还是生产环境,但是非常
好的选择;在这篇文章中,讲讲Docker的几个开发Tips。

几条命令安装Docker

$ curl -fsSL get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh

使用多个基础镜像

作为Python开发者,经常需要使用pip来构建安装包,等待pip安全的过程可谓是又臭又长,
而且一个不小心,如果在没有使用pip.conf的情况下,安装失败,docker又要重新跑一次,
十分的麻烦。下面给出的解决方案不一定是最好的,但是应该是比较有效的。

比如,我在构建某个Python项目的时候,会创建一个python-base的image,tag使用当前
项目名称。

这个python-base就是基础镜像之一:

FROM dockerxman/docker-ubuntu:latest
MAINTAINER Svtter <svtter@qq.com>
RUN apt-get update\
    && apt-get install python3-pip supervisor -y
COPY ./requirements.txt /app/requirements.txt
COPY ./pip/pip.conf /root/.pip/pip.conf
RUN pip3 install -r /app/requirements.txt
RUN rm -rf /var/lib/apt/lists/*

介绍一下这个Dockerfile;在第一行,我使用的是一aliyun源的ubuntu镜像,来加速
apt的过程,然后,把pip相关的配置复制到image中,最后,使用pip安装需求文件,
清理缓存,然后这个基础镜像就构建好了。

创建自己的项目

FROM python-base:school
MAINTAINER Svtter <svtter@qq.com>
COPY ./fleetness /app
WORKDIR /app
COPY supervisord.conf /etc/supervisord.conf
WORKDIR /log
CMD supervisord -c /etc/supervisord.conf
STOPSIGNAL SIGINT
EXPOSE 5000

此处就是这直接利用已经构建好的python-base:school的镜像,这样一来,每次我更新
代码,或者supervisor的配置,只需要重新构建这个镜像就可以了。在这个镜像中,没有
安装其他软件包的过程,因此节省了大量的时间。

此外,如果只需要更新代码,而依赖相对不改变的时候,可以通过挂载代码到VOLUME中,
每次更新代码,都通过git pull,然后重启一下镜像,就可以重新部署了。

Docker 构建Python镜像的一些技巧

使用pip快速 http://blog.csdn.net/lambert310/article/details/52412059

一条命令搭建LAMP

这条命令创建一个apache-php服务器,服务于8087端口。

$ docker run --rm -p 8087:80 -e ALLOW_OVERRIDE=true -v ${项目的绝对路径}:/var/www/html tutum/apache-php

发表评论

电子邮件地址不会被公开。 必填项已用*标注