目录
- 简介
- Docker commit命令
- Docker build命令
- 演示
一、简介
- 在日常的工作中,常常需要制作自己的项目的镜像,一般通过以下两种方式制作镜像:Docker commit、Dockerfile
二、Docker commit
- Docker commit一般用做从一个运行状态的容器来创建一个新的镜像。定制镜像应该使用Dockerfile来完成。默认commit 镜像,对外不可解释,不方便排查问题,可维护性差。
docker commit 容器名 新镜像名:tag
三、Docker build
-
忽略文件:
.dockerignore
指定文件:
docker build -f
添加标签:
docker build -t
不使用缓存:
docker build --no-cache
-
构建时变量:
docker build --build-arg
-
ARG指令变量
-
Dockerfile文件
FROM python:3.7-alpine
LABEL maintainer="insane"
ARG kdir=/tmp
#工作路径设定为
WORKDIR $kdir
#创建环境变量给Flask 使用
ENV FLASK_APP app.py
ENV FLASK_RUN_HOST 0.0.0.0
#复制app.py到容器内/code目录
COPY . .
#安装python的依赖
RUN pip install flask
#映射端口
EXPOSE 5000
STOPSIGNAL SIGTERM
#为容器设置默认启动命令
CMDl ["flask" , "run"]
app.py文件
from flask import Flask
app= Flask(__name__)
@app.route('/')
def hello():
return 'Hello World!'
python安装依赖文件 requirements.txt
flask
redis
构建镜像
-
docker build -t app:v1 -f Dockerfile .
-
运行容器:
docker run -d --name app -p 5000:5000 app:v1
-
访问5000端口
-
进入到容器中:
docker exec -it app sh