天天看点

Docker实战django镜像[ubuntu]--2,制作镜像

概要

    • 谈谈docker
    • docker基本语法
    • 制作镜像
      • 1,压缩django_test
      • 2,Dockerfile制作镜像
      • 3,运行镜像
    • 补充说明

谈谈docker

说一下我的感受,docker基于操作系统之上,你单独的文件可以docker一个镜像,不需要操作系统,docker出来的镜像文件就很小,但一般来说,跑的文件都依赖操作系统,你镜像一个ubuntu,是一个image,你在ubuntu上加一个python环境然后打包镜像,还是一个image,你在ubuntu上加一个拥有django模块的python环境,当然,还是一个image,可以理解为有3个layer。

云里雾里?

风里雪里?

这里有一本从天而降的docker掌法======》》Anthony_tester

docker基本语法

docker images     # 查看本机镜像
docker container ls -a          # 查看本机所有容器
docker rm  (CONTAINERID)   # 删除一个容器(根据CONTAINER ID),正在运行的要先停止
docker rmi  (IMAGE ID) # 删除一个镜像
           

制作镜像

1,压缩django_test

上一篇提到创建一个django_test项目,现在来制作镜像,首先压缩下文件

tar -zcvf HelloDocker.tar.gz django_test
           

2,Dockerfile制作镜像

同目录下vi一个 Dockerfile,内容如下

FROM python:3.6.8
LABEL maintainer="BatmanWu"
RUN pip install django==2.2.3
ADD  HelloDocker.tar.gz  /
WORKDIR /HelloDocker
EXPOSE 5001
CMD python manage.py runserver 0.0.0.0:5001

           

这里简单解释一下命令

1,FROM python:3.6.8 -----基于python:3.6.8 镜像

2, RUN … ----运行命令

3, ADD HelloDocker.tar.gz / ----把HelloDocker.tar.gz解压制作镜像的根目录下,记住ADD 命令自动解 压,自动解压,自动解压

4, WORKDIR /HelloDocker ----- 已经解压好了,然后进入这个目录,就cd这个意思

5, EXPOSE 5001 ------ 开放端口5001(把镜像当作一台实例电脑)

6,CMD ----- 相比于RUN,CMD的命令是在镜像启动后再运行

要我详细说一说, 搞笑吧,我自己也不清楚 ,不过你可以去找找一本从天而降的docker掌法 ,说不定能帮你。

最最最关键的一步来了,制作镜像,末尾的点不能忘掉

docker build -t wu/t  .
           

3,运行镜像

docker run  -d -p 8000:5001  wu/t
           

-d 后台运行

-p 端口映射,docker中镜像为5001,在阿里云实际运行端口为8000

查看容器状态

Docker实战django镜像[ubuntu]--2,制作镜像

运行成功后,打开本地浏览

Docker实战django镜像[ubuntu]--2,制作镜像

补充说明

在制作镜像时,运行到RUN pip install django==2.2.3,可能会慢一点,考虑更改下/etc/docker/daemon.json文件

{
        "registry-mirrors":["https://registry.docker-cn.com"]
}
           

就是把镜像源切换到中国区