简介

Dockerfile是一个文本格式的配置文件,用户可以使用Dockerfile快速创建自定义镜像

指令及说明

指令 说明
FROM 指定基础镜像 且必须是第一条指令
MAINTAINER 指定镜像作者
RUN 运行指定的命令 默认/bin/sh -c
CMD 指定容器启动时要执行的命令
LABEL 设置镜像标签
ADD 把文件复制到镜像中 类似scp
COPY 编译时复制本地文件到镜像中
WORKDIR 设置RUN CMD COPY ADD指令的工作目录 不存在则创建
ENTRYPOINT 设置容器入口程序
VOLUME 设置容器的挂载卷
USER 设置运行RUN CMD ENTRYPOINT的用户名
ARG 设置编译时加入的参数
EXPOSE 设置镜像暴露的端口
ENV 设置容器的环境变量
ONBUILD 设置镜像的ONBUILD指令
STOPSIGNAL 设置容器的退出信号量
HEALTHCHECK 容器监控状况检查命令

一个简单的例子

#This is SMS Dockerfile
#Version 1.0
#Author: LYW
 
#基础镜像
FROM daocloud.io/library/centos
 
#维护者信息
MAINTAINER LYW

# 标签
LABEL version="1.0"

# 安装依赖
RUN yum -y install  wget gcc gcc-c++ make openssl-devel \
zlib-devel bzip2-devel ncurses-devel \
sqlite-devel readline-devel tk-devel \
gdbm-devel db4-devel libpcap-devel xz-devel svn

# 添加需要下载的资源
RUN mkdir /usr/local/python3
ADD http://XXX/software/Python-3.6.1.tgz /usr/local/src
WORKDIR /usr/local/src/
RUN tar -zxvf Python-3.6.1.tgz
WORKDIR /usr/local/src/Python-3.6.1

# 安装python
RUN ./configure --prefix=/usr/local/python3
RUN make && make install
RUN ln -s /usr/local/python3/bin/python3 /usr/bin/python3

# 安装pip包
RUN /usr/local/python3/bin/pip3 install Flask 
RUN /usr/local/python3/bin/pip3 install pymysql
 
#目录挂载
VOLUME ['/data/sms']
 
#端口
EXPOSE 5000
EXPOSE 22
 
#声明环境变量
ENV PATH /usr/local/python3/bin:$PATH
#
CMD ["python3 -V"]

运行

  • 构建镜像
docker build -t python/sms:v0.1 .
  • 基于镜像启动容器
docker run -tid --name sms_01 -p 5000:5000 -p 5022:22  python/sms:v0.1 /sbin/init

参考

https://www.cnblogs.com/dazho...

EngineerLeo
598 声望38 粉丝

专注于云原生、AI等相关技术