Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像。
一、常用命令
命令 | 作用 |
FROM image_name:tag | 定义了使用哪个基础镜像启动构建流程 |
MAINTAINER user_name | 声明镜像的创建者 |
ENV key value | 设置环境变量 (可以写多条) |
RUN command | 是Dockerfile的核心部分(可以写多条) |
ADD source_dir/file dest_dir/file | 将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压 |
COPY source_dir/file dest_dir/file | 和ADD相似,但是如果有压缩文件并不能解压 |
WORKDIR path_dir | 设置工作目录 |
Dockerfile文件示例:
FROM python:3.6-alpine # 指定基础镜像,基于这个镜像创建,这个比较小
MAINTAINER Bob # 指明作者
ENV http_proxy http://域名:913 # ENV就是配置全局环境变量,有些环境需要代理上网,这里可以配置
ENV https_proxy http://域名:913
RUN mkdir -p /root/code # 在容器内新建文件夹
COPY . /root/code # 把当前的代码copy到建好的目录中去
WORKDIR /root/code # 设置工作目录为此目录
# 下一步进行安装依赖
RUN pip install -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
EXPOSE 9000 # 指定开放9000端口
CMD ["python3","manage.py","runserver","0.0.0.0:9000"] # 启动的命令,也可以写脚本
ENTRYPOINT ["/root/start_script.sh"] # 脚本启动可以这么写
基于以上的Dockerfile文件,我们就可以构建一个新的镜像。
# 注意最后面的.,指定以当前目录下的Dockerfile文件build镜像
docker build -t 域名/oss-cloud-registry/statisticstime:v1.1.0 .
查看构建好的镜像
docker images
本地构建的镜像会越来越多,造成空间浪费,应删除版本比较旧的镜像
docker rmi <Image ID> --force
我们build好镜像后,可以先运行检查是否能正常访问
# -p就是端口映射,
docker run -p 9000:9000 域名/oss-cloud-registry/statisticstime:v1.1.0
如果可以正常访问,那么就可以push到远端仓库
docker push 域名/oss-cloud-registry/statisticstime:v1.1.0
最后,我们就可以利用kubernetes拉取镜像进行部署了。