温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

dockerfile中怎么创建docker镜像

发布时间:2021-07-30 16:30:24 来源:亿速云 阅读:144 作者:Leah 栏目:大数据

本篇文章给大家分享的是有关dockerfile中怎么创建docker镜像,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

创建docker镜像

两种方式:docker commitdockerfile

commit命令创建本地镜像

commit命令是使用我们本地已经创建好的容器打包成镜像,这种方式方便简单,但是有一个缺点,就是这种方式生成的镜像中会包含很多我们使用容器过程中产生的中间文件,可能是缓存或者垃圾文件。这样创建出来的镜像拉起的容器都会包含这些垃圾文件。所以一般不推荐这种方式。

dockerfile

将需要对镜像进行的操作全部写到一个Dockerfile名字的文件中,然后使用docker build命令从这个文件中创建镜像。这种方法可以使镜像的创建变得透明和独立化,并且创建过程可以被重复执行。Dockerfile文件以行为单位,行首为Dockerfile命令,命令都是大写形式,其后紧跟着的是命令的参数。

先创建一个空目录mkdir /usr1/xmla_python,然后在目录下创建Dockerfile文件


  1. # 基础镜像

  2. FROM python:3.6


  3. # 作者信息

  4. MAINTAINER xingxingzaixian "942274053@qq.com"


  5. # 设置工作目录

  6. WORKDIR /app


  7. # 拷贝本地requirements.txt文件到镜像的/app目录下

  8. ADD requirements.txt /app


  9. # 把scrapyd配置文件拷贝到镜像指定目录

  10. ADD scrapyd.conf ~/.scrapyd.conf


  11. # 创建scrapyd数据目录,设置时区,保证镜像时间正常,安装python环境库

  12. RUN mkdir /scrapyd  &&

  13.        pip install -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com -r requirements.txt


  14. # 开放端口,主要是scrapyd端口

  15. EXPOSE 6800 80


  16. # docker容器启动时执行scrapyd命令,启动scrapyd

  17. CMD ["scrapyd", "redis-server"]

创建requirements.txt,主要是用来初始化python环境

  scrapy==1.5.0scrapyd==1.2.0redis==2.10.6scrapy-redis==0.6.8lxml==4.2.1requests==2.18.4

创建scrapyd.conf文件,主要是配置scrapyd环境,在我们的Dockerfile文件中使用ADD

 
  1. [scrapyd]

  2. # 项目的eggs存储位置

  3. eggs_dir = /scrapyd/eggs


  4. # scrapy日志的存储目录。如果要禁用存储日志,请将此选项设置为空,logs_dir=

  5. logs_dir = /scrapyd/logs


  6. # scrapyitem将被存储的目录,默认情况下禁用此项,如果设置了值,会覆盖scrapy的FEED_URI配置项

  7. items_dir =


  8. # 每个蜘蛛保持完成的工作数量。默认为5

  9. jobs_to_keep = 5


  10. # 项目数据库存储的目录

  11. dbs_dir = /scrapyd/dbs


  12. # 并发scrapy进程的最大数量,默认为0,没有设置或者设置为0时,将使用系统中可用的cpus数乘以max_proc_per_cpu配置的值

  13. max_proc = 0


  14. # 每个CPU启动的进程数,默认4

  15. max_proc_per_cpu = 4


  16. # 保留在启动器中的完成进程的数量。默认为100

  17. finished_to_keep = 100


  18. # 用于轮询队列的时间间隔,以秒为单位。默认为5.0

  19. poll_interval = 5.0


  20. # webservices监听地址

  21. bind_address = 0.0.0.0


  22. # 默认 http 监听端口

  23. http_port = 6800


  24. # 是否调试模式

  25. debug = off


  26. # 将用于启动子流程的模块,可以使用自己的模块自定义从Scrapyd启动的Scrapy进程

  27. runner = scrapyd.runner

  28. application = scrapyd.app.application

  29. launcher = scrapyd.launcher.Launcher

  30. webroot = scrapyd.website.Root


  31. [services]

  32. schedule.json     = scrapyd.webservice.Schedule

  33. cancel.json       = scrapyd.webservice.Cancel

  34. addversion.json   = scrapyd.webservice.AddVersion

  35. listprojects.json = scrapyd.webservice.ListProjects

  36. listversions.json = scrapyd.webservice.ListVersions

  37. listspiders.json  = scrapyd.webservice.ListSpiders

  38. delproject.json   = scrapyd.webservice.DeleteProject

  39. delversion.json   = scrapyd.webservice.DeleteVersion

  40. listjobs.json     = scrapyd.webservice.ListJobs

  41. daemonstatus.json = scrapyd.webservice.DaemonStatus

主要是eggsdir、logsdir、dbs_dir三个目录配置,其他的可以默认,这三个目录的主目录/scrapyd,我们在Dockerfile文件的RUN命令中添加mkdir /scrapyd来创建

以上创建完以后我们就可以使用docker build命令来构建镜像了

dockerfile中怎么创建docker镜像

执行docker build -t scrapy_python .命令构建镜像,其中-t参数指定镜像名,.则为Dockerfile文件的路径

以上就是dockerfile中怎么创建docker镜像,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI