随笔-Docker

Posted jacksonkwong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了随笔-Docker相关的知识,希望对你有一定的参考价值。

本文背景:

  数据挖掘过程中,需要定时爬取资料。

本文目的:

  建立一个Docker的容器,并运行python脚本。

 

1.1 Docker介绍:

  Docker 是一个开源的应用容器引擎(引擎:主程序)

1.2 容器介绍:

  容器(container),一种内核轻量级的操作系统层虚拟化技术。类似虚拟机。

1.3 容器和虚拟机区别:

  虚拟机:构建虚拟物理环境->构建完整操作系统->运行应用

  容器:    直接利用宿主机内核->运行应用

  注意:Hypervisor(VM核心)和Docker Engine(Docker核心)

     技术图片

 

2.1 容器建立流程:

   (1)下载/创建镜像->(2)创建容器->(3)运行容器

#查看镜像
docker images
#下载python镜像,从dockerhub,创建镜像:略
docker pull python3:latest
#容器创建 
docker run -v <host_path>:<container_path> --name="py-test" -d python3:latest
#运行容器 
docker exec -it py-test /bin/bash

#详细可参考 https://www.runoob.com/docker/docker-command-manual.html

 

3.1 关于容器定时工作建议:

  (1)把通过scp/mount把python脚本程序及所需配置文件传到宿主机的host_path下

  (2)然后把容器连接存储卷(指向宿主机的host_path)

  (3)通过执行shell脚本安装相对应的python包,并且设置定时工作

详细代码如下:

docker run -v /home/test:/var/share --name="py-test" -d python3:latest
#-v 建立关系,宿主机程序路径/home/test/指向到容器内的相对路径/var/share,--name指容器名字是py-test, -d为后台运行, 版本为python3:latest
docker exec -it py-test cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#使得容器时间同步到Shanghai时间 docker exec
-it py-test cp /var/share/test/root /var/spool/cron/crontabs/root
#/var/share/test/路径下的root文件是按照crontab指令规范而写的文本文件,使它覆盖/var/spool/cron/crontabs/路径下的root,设置定时工作指令 docker exec
-it py-test pip install --upgrade pip
#容器下的pip进行upgrade docker exec -it py-test pip install -r /var/share/test/requirements.txt
#容器下安装requirements.txt文件的 docker exec -it py-test service cron start
#启动cron service

 

   

以上是关于随笔-Docker的主要内容,如果未能解决你的问题,请参考以下文章

我的docker随笔35:jenkins服务部署

我的docker随笔35:jenkins服务部署

我的docker随笔34:gitlab服务部署

我的docker随笔34:gitlab服务部署

docker使用docker使用随笔

docker 随笔1