一文带你读懂Dockerfile中的参数及使用,并用容器部署简单的项目

该文章介绍dockerfile中的参数及其作用,并部署flask简单项目,实现web访问效果

1. Dockerfile概念

        1. dockerfile是自定义镜像的一套规则

        2. dockerfile由多条指令构成,dockerfile中的每一条指令都会对应于docker镜像中的每一层,因为docker是分层存储的

2. 参数详解

        FROM

        构建镜像的基本镜像

  FROM Centos:7

        MAINTAINER

        指定维护者 名字或者邮箱

MAINTAINER  xiaoli

        ENV

        设置环境变量,区别ARG在于ENV构建镜像和启动容器时都可以调用

        ARG

        设置环境变量,只有在构建镜像时会调用

ENV  NAME='XXX'
ARG  NAME='XXX'
ARG  MYSQL_VERSION=5.6

        EXPOSE

        指定端口和协议帮助使用该镜像的人,快速理解该容器的业务,一般不会映射到宿主机,一般-p指定

EXPOSE 80/TCP # 指定容器内的端口是80 tcp协议
EXPOSE 3306 # 指定容器内的端口是3306  应该要运行mysql容器

        VOLUME

        容器运行产生的数据挂载到宿主机上类似于mount挂载分区,保证容器存储层无状态,会自动生成宿主机的挂载目录。或者启动容器时通过-v指定

VOLUME /data  # 指的是容器内存储数据路径是/data  会自动生成宿主机映射的目录,docker  inspect  容器id查看

        WORKDIR

        目录的切换,容器跑起来时的工作目录

WORKDIR  /opt # 切换到opt容器跑起来时的工作目录

        USER

        用于改变环境,切换变量

USER xiaoli # 改变环境变量切换用户

        ADD / COPY

        都是用于将宿主机上面的文件添加到容器中,ADD添加的压缩包会自动解压,COPY添加的不会但是会保留原文件的基本信息

ADD /tmp/hello.txt   /usr/bin/  # 拷贝hello.txt文件到bin目录下
COPY /tmp/hello.txt  /usr/bin/

        RUN / CMD / ENTRYPOINT

        RUN是构建镜像时会执行的命令一般是安装一些包

        CMD是启动容器时执行的命令,当构建好镜像后需要在传参时,在docker run 后面传参会覆盖之前CMD中的内容

        ENTRYPOINT是启动容器时执行的命令,当构建好镜像后需要在传参时,在docker run 后面传参不会覆盖之前CMD中的内容

RUN yum install xxx -y # 安装xxx包
CMD ['','','']   # Linux命令用引号逗号分隔开
ENTRYPOINT ['','','']

3. 部署简单的python-flask项目

flask代码,用简单的框架代码测试

# coding:utf8
form flask import Flask
app=Flask(__name__)
@app.route("/hello")
def hello():
    return "hello docker"
if __name__=="__main__":
    app.run(host='0.0.0.0',port=8080)

# 访问宿主机ip映射到容器内

编写dockerfile

FROM centos:7
RUN curl -o
RUN curl -o
RUN yum makecache fast
RUN yum install python3-devel python-pip -y
RUN pip install flask
COPY test_flask.py /opt
WORKDIR /opt
EXPOSE 8080
CMD ['python','app.py']

构建镜像

docker build -t 'flasktest' .

启动容器

docker run -d --name my_flask_docker -p 80:8080 flasktest

访问页面    当前ip:80/hello

  • 25
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
上采样和下采样是计算机视觉常用的图像处理技术,用于改变图像的尺寸或分辨率。下采样是指将图像缩小,而上采样则是将图像放大。 在深度学习,卷积神经网络(CNN)通常使用下采样层(也称为池化层)来减小特征图的尺寸,从而减少计算量和内存占用。然而,在一些应用,比如语义分割任务,我们需要对下采样后的特征图进行还原,以便恢复原始图像的分辨率。 这时就需要使用上采样层来将特征图还原到原始图像的大小。上采样可以通过不同的方式实现,其一种常用的方法是反卷积(Deconvolution),也称为转置卷积(Transpose Convolution)。 反卷积层可以将下采样层输出的特征图还原到原始图像的大小。这是通过将输入特征图的每个像素进行扩展,并使用卷积核进行卷积来实现的。尽管这种方法有一些缺点,如可视化效果不佳和计算量较大,但它已被证明是一种有效的上采样方法。 DeconvNet 是一种通过反卷积实现语义分割的深度学习模型。它使用反卷积层来将下采样层的输出还原到原始图像的分辨率,并使用卷积层来进行像素级别的分类。DeconvNet 在语义分割任务表现出色,但在一些其他任务,如图像生成和超分辨率,它的效果不如其他模型。 总之,上采样和下采样是深度学习常用的图像处理技术,对于语义分割等需要恢复原始图像分辨率的任务来说,反卷积是一种有效的上采样方法。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值