摘要:简介是一个文本格式的配置文件,用户可以使用快速创建自定义镜像指令及说明指令说明指定基础镜像且必须是第一条指令指定镜像作者运行指定的命令默认指定容器启动时要执行的命令设置镜像标签把文件复制到镜像中类似编译时复制本地文件到镜像中设置指令的工作
简介
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...
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/27392.html
摘要:现在有了之后,部署方式变了更加容易,不容易出现配置错误,环境不一致问题。实际应用中,经常遇到多个容器相配合运行一套应用程序的情况。所以想要将应用运行在容器中,该容器必须将该应用所有的环境依赖安装好。 showImg(https://segmentfault.com/img/remote/1460000017081815); 背景 以前部署应用,需要各种环境配置,各种shell操作...
摘要:现在有了之后,部署方式变了更加容易,不容易出现配置错误,环境不一致问题。实际应用中,经常遇到多个容器相配合运行一套应用程序的情况。所以想要将应用运行在容器中,该容器必须将该应用所有的环境依赖安装好。 showImg(https://segmentfault.com/img/remote/1460000017081815); 背景 以前部署应用,需要各种环境配置,各种shell操作...
摘要:接下来,我们来看一个更酷的工作流程,即通过引入来实现项目的持续集成。是一个持续集成发布平台,支持对容器进行测试。取消对的选中状态。 showImg(https://segmentfault.com/img/bVk4cF); 借助Docker,我们可以更容易地进行web应用部署,而同时不必头疼于项目依赖、环境变量以及各种配置问题,Docker可以快捷、高效地处理好这一切。 而这也是本...
摘要:在默认情况下使用的公共注册表。注意我们将在这里使用的公共注册表,因为它是免费和预配置的,但是有许多公共注册中心可供选择,而且您甚至可以使用可信注册表建立您自己的私有注册表。标记镜像将本地映像与注册表中的存储库关联的符号是。 要求 安装了1.13或者更高版本的Docker 阅读了Part1中的定位(我没写) 介绍 是时候用Docker构建一个app了。我们会从构建这样一个app的最底...
阅读 6185·2021-11-22 15:32
阅读 814·2021-11-11 16:54
阅读 3158·2021-10-13 09:40
阅读 2165·2021-09-03 10:35
阅读 1826·2021-08-09 13:47
阅读 1868·2019-08-30 15:55
阅读 1935·2019-08-30 15:43
阅读 2456·2019-08-29 17:06