前面有一些docker的常用命令,这篇文章是我这段时间的一些收获吧,dockerfile的编写,利用dockerfile打包自己想要的镜像(后台的服务)

dockerfile可以帮助我们直接打包好我们在服务器上面的操作,这是一种很NB(流氓)的操作,一般我们在服务器部署的时候,会有很多的命令去提前部署,但是docker 镜像打包好了之后,不要启动这个镜像,就可以省去很多的准备工作

1, FROM
  • 1 一般来说这个命令不区分大小写,但是为了规范,区分命令,这里使用大写
FROM python:3.6

-2 这样就会构建一个基于python3.6的镜像,(省去配置环境很多烦恼),冒号前面是要的环境(小写),冒号后面是版本号。如果没有的话,会直接在电脑中拉取一个这样的镜像,因为你自己的镜像要基于这个镜像进行操作

2, WORKDIR /home/project/

-1 这是定义一个下面一些需要本来在终端的命令的路径,如果没有,会帮我们直接创造一个这样的路径

3, COPY . /home/project/

-1 第一个 . 这个的意思就是把当前的所有文件复制到 第二个 /home.project/文件夹下,也可以指定一个文件或者文件夹拷贝到上面指定的目录下

4 , RUN cd Desktop/
  • 1 这个命令的后面就是我们要在终端敲的命令,可以是多行,但是最好是一行,因为多一行docker就会多创建一层执行我们的命令,增加我们最后镜像的体积
5 , ENV project_config = local
  • 1 这个命令就是定义我们的全局变量
6 ,CMD [“python”,“manage.py”,“runserver”]
  • 1,这个如果经常写django的同事,应该都是之后,列表里面是什么,这里是在我们启动docker 的时候,会帮我们执行的命令,就是帮助我们启动我们所写的后台服务

当我们打包镜像的速度特别慢的时候,可能就是我们的源有问题,我们需要更换一下下载插件的源

RUN echo \
    deb http://mirrors.aliyun.com/debian/ stretch main non-free contrib\
    deb-src http://mirrors.aliyun.com/debian/ stretch main non-free contrib\
    deb http://mirrors.aliyun.com/debian-security stretch/updates main\
    deb-src http://mirrors.aliyun.com/debian-security stretch/updates main\
    deb http://mirrors.aliyun.com/debian/ stretch-updates main non-free contrib\
    deb-src http://mirrors.aliyun.com/debian/ stretch-updates main non-free contrib\
    deb http://mirrors.aliyun.com/debian/ stretch-backports main non-free contrib\
    deb-src http://mirrors.aliyun.com/debian/ stretch-backports main non-free contrib\
    > /etc/apt/sources.list && apt-get clean && apt-get update

一般我们启动后台的时候,不止就启动我们的后天服务,可能还有定时任务,还有celery异步任务,需要开启redis这里我的建议就是在我们的启动文件中,用我们的python直接去调用程序,避免dockerflie中终端占用的问题

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐