想必前几节小伙伴们已经学会了很多的知识,这一节我们搞点轻松的没有新的知识点,我们复习一下之前学的知识点。
我们今天要做的事情就是打包一个python程序,并把它做成一个container。即使大家没有学过python也没有关系,这个python程序是非常简单的。
下面我首先把Dockerfile的文件给大家贴出来
FROM python:2.7 # 去官方拉取一个python2.7的镜像
LABEL maintainer="apple<1991585851@qq.com>" #然后写上一些个人的信息
RUN pip install flask # 接着运行pip install flask
COPY app.py /app/ # 然后我们把app.py文件copy到根目录的app下面
WORKDIR /app # 进入工作目录
EXPOSE 5000 # 把5000端口暴露出来
CMD ["python", "app.py"] # 运行python 命令
接下来是python代码
from flask import Flask
app = Flask(__name__)
app.route('/')
def hello():
return "hello docker"
if __name__ == "__main__":
app.run()
其实可能有些小伙伴不知道app目录是哪里来的,心想我没有app目录呀,我们先进入
(flask_docker_test) -bash-4.2$ docker run -it 0383b7cc3321 /bin/bash
root@4f197ead9f6c:/# ls
app bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@4f197ead9f6c:/# cd app
root@4f197ead9f6c:/app# ls
app.py
小伙伴们看到了嘛,我们进入这个容器的交互式环境就看到了,我们拷贝的文件,那么问题又来了,我们0383b7cc3321这个镜像是哪里来的呢?看下面
---> 5f7f93ed7169
Step 4/7 : COPY app.py /app/
---> 0383b7cc3321 # 就是这一步的时候,建立了这个中间状态的image
Step 5/7 : WORKDIR /app
Removing intermediate container 45fa3dff9ee8
---> 44e0fb85de2f
Step 6/7 : EXPOSE 5000
---> Running in 53225f4c872f
Removing intermediate container 53225f4c872f
---> 8ef56f6b4fb1
Step 7/7 : CMD ["python", "app.py"]
---> Running in b592363fdc27
Removing intermediate container b592363fdc27
---> c6041ae4e106
Successfully built c6041ae4e106
最后我们运行制作的image
(flask_docker_test) -bash-4.2$ docker run applego/flask_docker_test # 加上-d就是后台运行
* Serving Flask app "app" (lazy loading)
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
只讲一个是不是不过瘾呀!那么接下来我们再来一个不同的,可以根据命令行参数得到不同的结果,我们要做的是一个linux系统的测试压力的工具,请往下看!
-bash-4.2$ docker run -it ubuntu:14.04
root@c8ffd785dfcb:/# apt-get update && apt-get install -y stress
安装完成以后执行
stress --vm 1 --verbose
我们先写Dockerfile
FROM ubuntu:14.04 #我本地有ubuntu:14.04的镜像
RUN apt-get update && apt-get install -y stress
ENTRYPOINT ["/usr/bin/stress"]
CMD []
OK,我们执行
docker run -it applego/ubuntu-stress --vm 1
这样我们就成功了,今天我们就讲了这两个,一个是运行程序,一个命令行参数。
怎么样,小伙伴们学到这里你可以制作一个复杂的dockerfile了嘛?,你也可以用你自己习惯的语言,操作一把熟能生巧,慢慢的就会了。。。。。
网友评论