概要
- 谈谈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
查看容器状态
运行成功后,打开本地浏览
补充说明
在制作镜像时,运行到RUN pip install django==2.2.3,可能会慢一点,考虑更改下/etc/docker/daemon.json文件
{
"registry-mirrors":["https://registry.docker-cn.com"]
}
就是把镜像源切换到中国区