在docker安装Python环境提供给其他docker使用

Posted 吾爱乐享

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在docker安装Python环境提供给其他docker使用相关的知识,希望对你有一定的参考价值。

1. 在宿主机新建一个目录

在宿主机上新建一个目录如app/,在app目录里面导入项目需要依赖的包

在项目根目录下输入命令,导出python项目所有的依赖包

pip freeze > requirements.txt

把导出的requirements.txt文件复制到新建的宿主机的app目录

2. 在app目录下新建一个Dockerfile文件

新建的Dockerfile文件用来构建python镜像

FROM  python
WORKDIR .
USER root
RUN apt-get update \\
    && apt-get install -y gcc
ADD ./requirements.txt .
RUN pip3 install --upgrade pip
RUN pip3 install virtualenvwrapper
RUN pip3 install -r requirements.txt
#-i https://pypi.tuna.tsinghua.edu.cn/simple #安装依赖包

保存后,构建镜像文件

docker build -t mypython3 . # -t:镜像名称,点(.)代表是当前目录

查看构建好的镜像

在jenkins的shell脚本输入一下内容,或者把一下内容放到一个sh脚本中在jenkins中执行shell脚本

echo "运行容器python" #输出日志
docker run --rm -w=$WORKSPACE --volumes-from=jenkins mypython3 $python $file
echo "python执行成功"
 #--rm:选项表示退出容器时会自动将其删除
 # -w: 指定命令执行时,所在的路径,$WORKSPACE就是jenkins运行时的工作目录
 #--volumes-from:容器通过挂载这个(父容器)实现数据共享,后面跟着父容器的容器名称,父容器可以不启动
# mypython3:python打包后的镜像名称
# $python $file,是两个动态参数替换制作镜像CMD ["python3", "main.py"] 里面的值

docker 运行一个jenkins命令

docker run --name jenkins -p 8082:8080   -u root -v /var/mydata/jenkins_home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker -d --restart always jenkins/jenkins
-u root。通过root用户启用jenkins 否则在jenkins中执行docker命令会提示没有权限
注意这两个volume参数(将jenkins容器内的docker命令指向了宿主机):
-v /var/run/docker.sock:/var/run/docker.sock 
-v $(which docker):/usr/bin/docker 

之后直接在jenkins的project里面就可以使用docker命令了

启用jenkins后,新建任务 ,在shell命令框可以直接输入docker命令运行

添加两个文本参数python,file

执行shell脚本时,动态传入参数




本文永久更新地址:

https://www.fenxiangbe.com/p/在docker安装Python环境提供给其他docker使用.html

docker-ce的安装

Docker提供了两个版本:社区版(CE)企业版(EE)

Docker社区版(CE)是开发人员和小型团队开始使用Docker并尝试使用基于容器的应用的理想之选。Docker CE有两个更新渠道,即stableedge

  • Stable每个季度为您提供可靠更新
  • Edge每个月为您提供新功能

Docker企业版(EE)专为负责在生产环境中大规模构建、交付和运行业务关键型应用程序的企业开发和 IT 团队设计

docker-ce安装

配置yum源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

wget -O /etc/yum.repos.d/epel.repo  http://mirrors.aliyun.com/repo/epel-7.repo

wget -O /etc/yum.repos.d/docker-ce.repo  https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum  list  docker-ce.x86_64  --showduplicates | sort -r

yum  install  docker-ce  -y

systemctl start docker

systemctl enable docker

systemctl status docker

 

如果没有网络,可事先下载rpm包(https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/7/x86_64/stable/Packages/),使用yum localinstall或rpm -ivh进行安装

 

宿主机开启ip转发

 

为dockerd设置NDS服务器(可选,如果不配,使用宿主机相同的配置):在/etc/docker/daemon.json中设置

 

加速器配置:

cat >>/etc/docker/daemon.json<<-end

{

"registry-mirrors": ["https://registry.docker-cn.com"]

}

end

 

systemctl  restart  docker

docker  --version

docker   info

docker  run  hello-world

输出如下界面,说明安装成功

技术分享图片

 

以上是关于在docker安装Python环境提供给其他docker使用的主要内容,如果未能解决你的问题,请参考以下文章

07-docker系列-使用dockerfile构建pythonjenkins镜像

Docker 环境部署

docker-ce的安装

docker的安装

Ubuntu系统下基于docker部署Jenkins环境

docker 安装与使用相关