美文网首页
Docker 构建镜像

Docker 构建镜像

作者: janlle | 来源:发表于2019-11-25 16:40 被阅读0次

Docker 构建镜像

环境

Docker: Docker version 19.03.4, build 9013bf583a
System: CentOS Linux release 8.0.1905 (Core)
Python: Python 3.6.8
Flask: Flask 1.0.3
Gunicorn: gunicorn 19.9.0

Dockerfile 指令详解

  • FROM <image> or FROM <image>:<tag>

FROM 指令用于指定其后构建新镜像所使用的基础镜像。FROM 指令必是 Dockerfile 文件中的首条命令,启动构建流程后,Docker 将会基于该镜像构建新镜像,FROM 后的命令也会基于这个基础镜像。

  • COPY <源路径> <目标路径>

指令将从构建上下文目录中 <源路径> 的文件/目录复制到新的一层的镜像内的 <目标路径> 位置。比如: COPY package.json /app

  • ADD <源路径> <目标路径>

ADD 指令和 COPY 的格式和性质基本一致。但是在 COPY 基础上增加了一些功能。比如 <源路径> 可以是一个 URL

  • CMD <命令> or CMD ["可执行文件", "参数1", "参数2"...]

CMD用于指定在容器启动时所要执行的命令

  • ENV <key> <value> or ENV <key1>=<value1> <key2>=<value2>...

主要用于设置程序运行时需要的参数

  • EXPOSE <端口1> [<端口2>...]

EXPOSE 指令是声明运行时容器提供服务端口,这只是一个声明

  • WORKDIR <工作目录路径>

使用 WORKDIR 指令可以来指定工作目录(或者称为当前目录),以后各层的当前目录就被改为指定的目录,如该目录不存在,WORKDIR 会帮你建立目录。

  • USER <用户名>[:<用户组>]

USER 指令和 WORKDIR 相似,都是改变环境状态并影响以后的层。WORKDIR 是改变工作目录,USER 则是改变之后层的执行 RUN, CMD 以及 ENTRYPOINT 这类命令的身份。

  • RUN <命令行命令> or RUN ["可执行文件", "参数1", "参数2"]

用于执行后面跟着的命令行命令.

  • VOLUME <路径> or VOLUME ["<路径1>", "<路径2>"...]

定义匿名数据卷。在启动容器时忘记挂载数据卷,会自动挂载到匿名卷,可以避免重要的数据,因容器重启而丢失。

构建 Docker 镜像

Dockerfile

# 基于 Python:3.6 基础镜像
FROM python:3.6
# Docker 的工作目录
WORKDIR /app
# 复制文件到工作目录
ADD . /app
# 安装 Python 的依赖
RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
# 设置运行的必要参数
ENV env=dev
# 程序启动的命令
CMD ["gunicorn", "manager:app", "-c", "run.ini"]

application.py

# coding:utf-8

from flask import Flask

app = Flask(__name__)


@app.route('/index')
def index():
    return 'Hello docker'


if __name__ == '__main__':
    app.run(debug=True)

run.ini

workers = 5
threads = 4
daemon = 'false'
worker_class = "gevent"
bind = "0.0.0.0:8000"

requirements.txt

gunicorn
gevent
flask

构建镜像


# docker build -t <tag>:<version> <dir>
docker build -t gunicron:v1.0.0 .

创建 Docker 容器

docker run -d --name gunicron-flask -p 8084:8084 gunicron

Docker 容器操作

docker [start | stop | restart] gunicorn-flask

相关文章

  • python基于Ubuntu下开发环境的准备

    利用Docker搭建Ubuntu环境 安装Docker 基于Dockerfile构建ubuntu镜像 构建镜像 查...

  • Learning Docker Part 002 Docker

    构建镜像 Docker提供了两种构建镜像的方法: docker commit命令 Dockerfile 构建文件 ...

  • Docker部署(二):MySQL数据库

    Docker 容器构建 使用Dockerfile构建镜像 使用官方提供的Docker镜像 所谓Dockerfile...

  • Docker镜像

    镜像: 获取镜像: 构建制作镜像.docker自带 docker commitdockerfile (推荐)封装...

  • 《第一本Docker书》笔记

    初步 确认Docker信息: 镜像 查看镜像 镜像搜索 获取镜像 构建镜像 docker commit Docke...

  • Docker的一些常用命令

    1、镜像命令: docker images 列出所有镜像 docker build 构建镜像 do...

  • Docker

    [TOC] 使用 Docker 镜像 下载镜像 列出镜像 构建镜像 删除本地镜像 操作 Docker 容器 容器是...

  • (四)Docker镜像与仓库之一(3)——构建镜像

    Docker官网 Docker文档地址 构建镜像的好处: 1.构建docker镜像,可以保存对容器的修改,方便...

  • docker镜像

    Docker镜像是构建docker容器的基础,容器是docker镜像的运行的实例。构建镜像只用三条命令就可以搭建一...

  • Java读取HDFS文件

    最近在实现一个功能:用户在前端页面触发Docker镜像构建,后端监听Docker镜像的构建状态,并将Docker镜...

网友评论

      本文标题:Docker 构建镜像

      本文链接:https://www.haomeiwen.com/subject/vfsjwctx.html