zoukankan      html  css  js  c++  java
  • docker使用小记

      最近在做一些接口,需要使用docker打包发布。

      接口的内容不多,文件结构也不复杂,使用的是Flask框架开发的。

      一、Docker file

      docker打包需要一个Dockerfile,指挥怎么打包怎么运行。

      使用了一个简单的Dockerfile模板

    FROM python:3.7.5
    RUN mkdir /code
    COPY requirements.txt /code
    COPY config.py /code
    COPY run.py /code
    RUN pip install -r /code/requirements.txt
    WORKDIR /code
    CMD ["python3","run.py"]

      这里是一个只有两个文件的项目,需要的依赖库都在requirements.txt中。执行方式为 python3 run.py

      运行一段时间发现我的服务器时钟不对,需要同步一下时间,增加了以下代码

    RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone

       这一段放在运行程序之前即可。

    二、构建镜像

      代码写好之后,做好Dockerfile,就开始构建镜像,使用docker build镜像。

      在当前文件夹构建一个叫做api-data的镜像,执行命令

    docker build -t api-data ./

     等待命令执行完毕,使用 docker images  可以看到镜像列表中多了一个名为api-data的镜像。

    三、docker run

      运行docker容器

      简单的运行命令

    docker run -d api-data

       -d表示后台运行

      我的是flask接口的运行,需要映射端口

    docker run -d -p 5000:5000 api-data

      增加一下重命名和日志文件夹的映射,方便查看文件

    docker run -d -p 5000:5000 -v /code/logs:/code/logs --name my-docker-api api-data

      这个文件夹在构建的时候需要创建,Dockerfile需要增加创建日志文件夹的命令,并在代码中配置将日志文件输出到该处。

    FROM python:3.7.5
    RUN mkdir /code
    RUN mkdir /code/logs
    COPY requirements.txt /code
    COPY config.py /code
    COPY run.py /code
    RUN pip install -r /code/requirements.txt
    WORKDIR /code
    RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
    CMD ["python3","run.py"]
    View Code

      执行成功后,使用 docker ps -a 查看一下运行情况。如果运行有错误可以查看日志排查。

    四、推送

      将打包好的docker镜像推送到远端。

      控制版本使用 docker tag  给镜像打标签

    docker tag 36ace58ff853 registry.cn-beijing.aliyuncs.com/my-docker-api/api-data:1.0

       登录远端

    docker login --username=myname registry.cn-beijing.aliyuncs.com

      提示需要输入密码,输入密码即可

      推送

    docker push registry.cn-beijing.aliyuncs.com/my-docker-api/api-data:1.0

    这个是使用阿里云搭建的docker镜像仓库,从网站上登录可以看到推送上去的版本。

    需要使用的环境,仍使用相应的docker run语句即可运行容器。

    贴一下文档

    https://docs.docker.com/desktop/

       

       

  • 相关阅读:
    C# vb实现浮雕特效滤镜效果
    一张图看懂SharpImage
    C#控制操控操作多个UVC摄像头设备
    C#读写修改设置调整UVC摄像头画面-缩放
    继承多态绕点 Java篇
    继承多态绕点 C#篇
    lock关键字理解
    关于C#迭代器
    关于排列组合中组合结果
    C#与Java中相等关系
  • 原文地址:https://www.cnblogs.com/masako/p/14790802.html
Copyright © 2011-2022 走看看