在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有两个更新渠道,即stable和edge:
- 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使用的主要内容,如果未能解决你的问题,请参考以下文章