精华内容
下载资源
问答
  • win10用docker容器运行本地python文件

    千次阅读 2019-08-07 19:12:14
    在win10中用docekr创建python容器去执行本地.py文件可能会产生以下问题 docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused "exec: \"a....

    问题产生与解决

    在win10中用docekr创建python容器去执行本地.py文件可能会产生以下问题

    docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: 
    starting container process caused "exec: \"a.py\": executable file not found in $PATH": 
    unknown.
    

    产生的原因就是这个容器找不到需要执行的python文件路径,那么需要怎么解决呢?小编查阅了很多都是关于linux命令如何去做的而且说的不是很容易理解,ok在这里小编将会对该操作进行最全面的分析。在这之前我们要先去setting设置一下
    在这里插入图片描述
    找到右下角的图标右击点击setting
    在这里插入图片描述
    然后会跳出以下页面
    在这里插入图片描述
    选择Shared Drives选项,然后选择想要运行文件的所在磁盘,最后Apply就行了,这样你就可以通过docker容器运行本地的文件内容了
    在这里插入图片描述
    当然这里会有人说我的没有这么多选项啊,对比下图你会发现第五个选项会有所不同,你的是Switch to Linux containers...,点击这个就可以了(注:如果不是Linux容器的话当你拉取镜像的时候会出现问题,大概意思会说在镜像列表中没有对应win64操作系统的镜像,所以这里一定要用Linux容器),等docker重启后,你再去打开setting就会发现没有问题了。
    在这里插入图片描述
    到这里基本的准备就做好了,下面开始正题了,先贴上图片。
    在这里插入图片描述
    我运行的代码是:

    docker run -v D:/dockerfiles/myapp:/usr/src/myapp -w /usr/src/myapp python:3.6 python 1.py
    

    docker:操作符。

    run:docker命令,执行的意思。
    -v D:/dockerfiles/myapp:/usr/src/myapp:将本机上要运行的py文件的目录D:/dockerfiles/myapp挂载到容器中的/usr/src/myapp容器执行路径,/usr/src/myapp中是可以随便换的,为了更好理解,直接上图。

    在这里插入图片描述
    -w /usr/src/myapp:指定容器的/usr/src/myapp目录为工作目录,就是执行py文件的路径。
    python:3.6:镜像的名称和标签(版本号),这里就是指python3.6这个版本镜像。
    python 1.py相信用过python的都知道,电脑里配置过python文件执行路径的,在cmd命令行中就是可以运行
    在这里插入图片描述
    效果和在容器中一样,所有问题到这里就解决了。
    注:本机的文件路径最好写绝对路径,小编在这就用的D:/dockerfiles/myapp,在用其他时就会出现同样的问题。

    展开全文
  • Docker PythonAPI docker提供了API用来远程控制docker守护程序,可以通过代码控制docker容器。 环境:win10企业版 +Docker Desktop 19.03.1 docker版本不同需要的Dockers SDK版本也是不一样的,因为小编的版本是较新...

    Docker PythonAPI

    docker提供了API用来远程控制docker守护程序,可以通过代码控制docker容器。
    环境:win10企业版 +Docker Desktop 19.03.1
    docker版本不同需要的Dockers SDK版本也是不一样的,因为小编的版本是较新的所以在cmd命令行中直接通过pip安装就行了

    pip install docker
    

    docker版本与sdk版本对应信息

    Docker versionMaximum API versionChange log
    19.031.40changes
    18.091.39changes
    18.061.38changes
    18.051.37changes
    18.041.37changes
    18.031.37changes
    18.021.36changes
    17.121.35changes
    17.111.34changes
    17.101.33changes
    17.091.32changes
    17.071.31changes
    17.061.30changes
    17.051.29changes
    17.041.28changes
    17.03.11.27changes
    17.031.26changes
    1.13.11.26changes
    1.131.25changes
    1.121.24changes
    1.111.23changes
    1.101.22changes
    1.91.21changes
    1.81.20changes
    1.71.19changes
    1.61.18changes

    具体可以看官方SDK文档

    简单运用

    在官方网站上有一些简单的例子,但有些问题不注意的话还是会出现一些问题
    如:

    import docker
    client = docker.from_env()
    

    在执行这段代码时,很有可能报远程计算机拒绝连接访问的错误,网上大多数是linux系统的远程连接守护程序的配置,而在Docker Desktop中这样的配置显然无用。那么在Docker Desktop中该如何配置?
    只需要打开Settings
    在这里插入图片描述
    选择General将第四个选项勾选就好了

    当然你想执行本地文件还需要Shared Drives,小编在这里是分享的D盘
    在这里插入图片描述
    准备工作准备好了,下面开始运行本地python文件

    import docker
    c = docker.from_env()
    container = c.containers.run('python:3.6', 'python 1.py',
                                 volumes={'D:/dockerfiles/myapp': {'bind': '/usr/src/myapp', 'mode': 'rw'}},
                                 working_dir='/usr/src/myapp',
                                 detach=True)
    print(container.logs())                             
    

    执行结果
    在这里插入图片描述

    解释
    ‘python:3.6’<docker拉取的镜像>:<版本号>
    ‘python 1.py’’要执行的命令即COMMAND,这里是通过python执行1.py文件
    volumes={‘D:/dockerfiles/myapp’: {‘bind’: ‘/usr/src/myapp’, ‘mode’: ‘rw’}},将本机的路径装入容器的路径中,bind 是装入的容器路径(可以随便写),mode是读写的权限,rw是可以对本地文件进行读/写, ro是只读,也就是让容器可以访问本地文件
    working_dir=’/usr/src/myapp’设置容器工作目录,也就是容器运行的目录,必须和上面bind对应的值一样,否则会找不到文件
    detach=True是否返回container对象,默认是False
    container.logs()日志,即运行结果
    注:container对象就是容器对应的信息,包括[CONTAINER ID,  IMAGE,  COMMAND,  CREATED,  STATUS,  PORTS,  NAMES]
    

    想要了解更多可以看官方文档
    可能会有人说通过python运行docker再运行python文件不是多此一举嘛?小编之所以这么做是小编要做一个云编辑器,可以支持多语言在线编程,用python只是为了试验可行。

    展开全文
  • docker运行python文件

    千次阅读 2020-10-16 21:34:25
    项目完成后需要打包成镜像然后发布,因为镜像里包含了配置文件及所需要的包。制作镜像的三种办法: 目录 一、如果项目较小,且所需依赖不是很多,直接将...1、怎样将本地文件上传到docker容器? 运行镜像,打开新的

    项目完成后需要打包成镜像然后发布,因为镜像里包含了配置文件及所需要的包。制作镜像的三种办法:

    目录

    一、如果项目较小,且所需依赖不是很多,直接将项目文件上传至容器内,并安装所有程序运行需要的包。最后保存镜像。

    二、在基础镜像上安装所有程序运行需要的包,最后保存镜像。(项目代码不需要放进镜像)

    1、加载保存好的本地镜像 或 拉取镜像:

    2、从宿主机进入要执行的脚本(test.py)所在目录:

    3、在宿主机执行python文件(运行容器)

    3.1 如果启动的是服务程序,需要指定端口映射,端口映射通过-P和-p参数来实现。

    4、结果

    5、这种方式会产生容器变化

    三、编写dockerfile等


    一、如果项目较小,且所需依赖不是很多,直接将项目文件上传至容器内,并安装所有程序运行需要的包。最后保存镜像。

    1、怎样将本地文件上传到docker容器

    运行镜像,打开新的命令行,查看container ID,docker ps -a

    查找容器长ID

    docker inspect -f '{{.ID}}' tomcat-container-id

    拷贝本地文件到容器
    docker cp 本地路径 容器长ID:容器路径

    docker cp /usr/myfile/Test.war 38ef22f922704b32cf2650407e16b146bf61c221e6b8ef679989486d6ad9e856:/usr/local/tomcat/webapps/Test.war

    注意:

    1、docker run -it 一个启动容器,然后另起一个窗口连接服务器查看容器ID、查找长ID,进行复制。复制后在第一个窗口目录下  或者  利用sudo docker attach [CONTAINER ID] 进入该容器,查看是否复制成功。(这样做目的是为了保持容器STATUS为UP)

    2、每次docker run -it 其实都是新建了一个容器(相应的容器ID都不一样)


    二、在基础镜像上安装所有程序运行需要的包,最后保存镜像。(项目代码不需要放进镜像)

    进入项目代码目录下,以挂载的方式执行python代码

    1、加载保存好的本地镜像 或 拉取镜像:

    docker load -i comments_classification.tar
    
    docker pull python:3.5 # [REPOSITORY:TAG]

    2、从宿主机进入要执行的脚本(test.py)所在目录:

    python文件地址:/home/bx_admin/jenkins_work/test/test.py

    #test.py文件
    #!/usr/bin/python
    import os
    print(os.getcwd())  #获取当前目录
    print('-------------start--------------------')
    print('this is a test file')
    print('----------------end---------------')

    3、在宿主机执行python文件(运行容器)

    docker run -v /home/bx_admin/jenkins_work/test:/usr/src/python -w /usr/src/python python:3.5 python test.py
    

    命令说明:

    • docker run 创建容器
    • -v /home/bx_admin/jenkins_work/test 将主机中/home/bx_admin/jenkins_work/test目录挂载到容器的/usr/src/python
    • -w /usr/src/python 指定容器的/usr/src/python目录为工作目录
    • python:3.5 是镜像
    • python test.py 是命令执行test.py脚本

    3.1 如果启动的是服务程序,需要指定端口映射,端口映射通过-P和-p参数来实现。

    3.1.1 -p指定要映射的端口,一个指定端口上只可以绑定一个容器;支持的格式如下:

    IP:HOSTPORT:CONTAINERPORT:指定ip、指定宿主机port、指定容器port

    • 适用于映射到指定地址的指定端口
      eg:将容器的5000端口映射到指定地址127.0.0.1的5000端口上:
    docker run -p 127.0.0.1:5000:5000 -v /home/bx_admin/jenkins_work/test:/usr/src/python -w /usr/src/python python:3.5 python test.py
    

    图片来自网络

    IP::CONTAINERPORT:指定ip、未指定宿主机port(随机)、指定容器port

    • 适用于映射到指定地址的任意端口
      eg:将容器的4000端口映射到127.0.0.1的任意端口上:
    docker run -it -d -p 127.0.0.1::4000 docker.io/centos:latest /bin/bash

     注:会将容器的ip127.0.0.1和4000端口,随机映射到宿主机的一个端口上。

    HOSTPORT:CONTAINERPORT :未指定ip、指定宿主机port、指定容器port

    • 适用于将容器指定端口指定映射到宿主机的一个端口上(映射所有接口地址)
      eg:将容器的80端口映射到宿主机的8000端口上:
    docker run -itd -p 8000:80 docker.io/centos:latest /bin/bash
    


    注:上边的操作默认会绑定本地所有接口上的所有地址。

    查看映射端口配置:

    docker port CONTAINER_ID
    

    本节参考:https://www.cnblogs.com/wholj/p/10551999.html

    4、结果

    执行test.py文件后,可以看到当前目录是/usr/src/python,可以看出我们的脚本输出的是docker容器中的目录,而不是我们宿主机的目录 。

    在这里插入图片描述

    再看直接使用服务器python直接该文件的打印,当前目录是home/bx_admin/jenkins_work

    在这里插入图片描述

    5、这种方式会产生容器变化

     先看执行前的容器 docker ps -a ,当前一共只有两个容器
    在这里插入图片描述
    docker执行python文件后(相当于新建了一个容器)
    在这里插入图片描述
    注意:即使文件执行失败了,但是新容器还是新生成了
    在这里插入图片描述
    删除容器:docker rm -v a7505a43e238

    参考:CentOS 7上使用docker运行python脚本文件 https://blog.csdn.net/shuyaoyao/article/details/108692158


    三、编写dockerfile等

    python项目打包成docker镜像并发布 https://blog.csdn.net/bocai_xiaodaidai/article/details/92838984

    python项目打包成docker镜像并发布运行 https://blog.csdn.net/qq_27786919/article/details/106780756?utm_medium=distribute.pc_relevant.none-task-blog-title-1&spm=1001.2101.3001.4242

    Docker制作Python运行环境基础镜像的方法步骤 https://www.jb51.net/article/177259.htm

    python 项目制作docker镜像 https://www.cnblogs.com/adolfmc/p/13062478.html

    展开全文
  • 服务器系统:Centos 7 服务器虚拟环境:docker 本地系统:win10 1,win10安装Docker,请参考...3,方法一,在本地win10中将python文件打包成镜像(需要编写Dockerfile,),上传镜像到CentOS服.

    服务器系统:Centos 7

    服务器虚拟环境:docker

    本地系统:win10

    1,win10安装Docker,请参考https://www.cnblogs.com/TurboWay/p/12923814.html

    2,  CentOS安装Docker,请参考https://blog.csdn.net/u014069688/article/details/100532774

    3,方法一,在本地win10中将python文件打包成镜像(需要编写Dockerfile,),上传镜像到CentOS服务器,运行镜像产生容器;

    参考文章:https://blog.csdn.net/bocai_xiaodaidai/article/details/92838984

    1)本地系统中,在python文件对应路径下将它打包成镜像,

    docker save tsied:latest > ./tsied.tar

    2)在Centos中导入镜像:

    sudo docker load < ./tsied.tar

    3)  运行镜像:

    docker run tsied

    4)此处有个坑,python代码中有使用MYSQL数据库,本地运行代码正常,在Centos中运行镜像:报错2003 can't connect to mysql server on

    进入容器内部:docker run tsied /bin/sh,发现ping不通主机,更加ping不通外网

    解决方法参照:https://blog.csdn.net/qq_36059826/article/details/106550332 按照文中第三种方法,修改sysctl.conf,重启网络后,运行镜像就正常了。

      docker主机内部网络正常,与其它主机的连接失效,其它主机不能连接docker主机上映射的端口,docker内部也无法连接外部主机,利用docker info指令查看信息发现报错如下:

    WARNING: IPv4 forwarding is disabled
    
    WARNING: bridge-nf-call-iptables is disabled
    
    WARNING: bridge-nf-call-ip6tables is disabled

    使用指令vim /etc/sysctl.conf编辑配置文件,在文件中增加以下代码:

    net.bridge.bridge-nf-call-ip6tables=1
    
    net.bridge.bridge-nf-call-iptables=1
    
    net.bridge.bridge-nf-call-arptables=1
    
    net.ipv4.ip_forward=1

     

    4,方法二,在CentOS服务器中拉取anaconda镜像,将python文件上传到CentOS服务器,运行镜像产生容器;

    1)在CentOS服务器中拉取anaconda镜像

    docker pull continuumio/anaconda3

    2)运行镜像,进入交互界面,并且将容改名为anaconda

    docker run -it  --name anaconda   continuumio/anaconda3 /bin/bash

    3)在容器内安装需要的包

    pip install xxx

    4)退出交互界面   Ctrl+P+Q

    5)将容器保存为新镜像

    docker commit anaconda anaconda3

    6)复制主机的localtime到容器,确保容器中的时间与主机一致,避免一些坑。

    docker cp /etc/localtime 87986863838b:/etc/
    #87986863838b是我的容器ID
    #查询容器ID: docker ps -a
    

    7)重启容器,进入正在运行的容器交互界面

    docker  restart anaconda
    
    docker exec -it anaconda /bin/bash

    8)将.py文件上传到服务器上,挂载.py文件所在目录,运行产生新容器

    挂载.py文件所在目录

    sudo docker run -v /var/lib/docker/pyuserimage:/usr/src/python -w /usr/src/python  anaconda3 python test.py
    • docker run 创建容器
    • -v /var/lib/docker/pyuserimage 将主机中/var/lib/docker/pyuserimage目录挂载到容器的/usr/src/python
    • -w /usr/src/python 指定容器的/usr/src/python目录为工作目录
    • anaconda3 是镜像
    • python test.py 是命令执行test.py脚本

    9)将容器重命名    docker rename 原容器名称 新容器名称

    参考文章:https://blog.csdn.net/weixin_44285715/article/details/109124916

    5,crontab设置定时任务,参考文章:http://c.biancheng.net/view/1092.html

    crontab -e
    #输入定时任务
    * * * * * root docker restart test
    #test 是容器的名字
    #查看定时任务
    crontab -l

    如果Centos服务器的时间和本地时间不一致,定时任务可能会有问题,参考文章

    https://blog.csdn.net/skh2015java/article/details/85007624

    修改成一致的即可。

     

    展开全文
  • 本文中缩减了如何搭建docker环境,如何将本地文件上传到服务器或从服务器中下载等,这里不是重点,如果哪个环节报错或遇到问题可自行百度。本文重点讲一下大致过程~ 1、本地创建一个Python项目,项目中创建一个...
  • 创建centos docker环境运行python脚本

    千次阅读 2019-02-26 13:45:34
    docker pull centos 2.跑一个容器: docker run -itd --privileged --name centos_as2 -v /home/furuiyang/async:/home/furuiyang/async centos /usr/sbin/init 3.进入容器中: docker exec -it centos_as2 /...
  • Docker如何部署Python项目

    千次阅读 2019-05-24 09:09:00
    Docker 部署Python项目 作者:白宁超 2019年5月24日09:09:00 导读: 软件开发最大的麻烦事之一就是环境配置,操作系统设置,各种库和组件的安装。只有它们都正确,软件才能运行。如果从一种操作系统里面运行另...
  • title: Docker系列四持久运行python脚本 date: 2020-10-24 08:33:19 想法是从csdn上面发现的一个博客开始的,能够修改微信步数。缺点就是要一直运行才可以,那干脆扔到服务器上不就好了。 首先要保证在自己本地能够...
  • Docker 安装 Python 1. 安装 方法一: docker pull python:3.7 ...在本地镜像列表里查到 REPOSITORY 为python, 标签为 3.7的镜像。 xiaoyuanzi@xiaoyuanzi-virtual-machine:~$ docker images python:3.7 R
  • macOS下docker安装部署python项目,涉及docker常用命令应用和说明
  • 本文中,将详细讲述如何使用pycharm调用docker中的python环境,并处理宿主机(本地)中的文件。 一、准备工作 本文所需要的工具如下 1.pycharm(专业版),只有专业版才支持ssh链接进行调试,而...
  • 安装docker及在docker中安装python环境学习笔记

    万次阅读 多人点赞 2019-06-06 11:26:13
    首先在本地建一个文件用于存放py文件并在文件夹中编写python测试脚本 $ mkdir python $ vim python/test.py test.py内容如下: #!/usr/bin/python import os print(os.pwd()) 4、运行容器 在...
  • 建立连接,在本地将命令传送给远程机,对指定docker容器进行操作 文件传输,关闭连接   因为这两种都可是实现连接远程机,自己初学时网上的介绍一般都是把实现命令和文件传输分开介绍。在这里就不单独介绍这两种...
  • Docker SDK for Python

    2020-03-10 11:18:00
    它允许您执行docker命令所做的任何操作,但可以在Python应用程序中运行容器、管理容器、管理群集等。 官方文档: https://docker-py.readthedocs.io/en/stable/ 安装模块 pip3 install docker 二、语法...
  • VS code远程连接linux服务器中docker里的python 环境 linux:centos 7 python:3.10 vs code: 1.63 1.建目录 首先,创建目录 python,用于存放后面的相关东西。 #在根目录下创建python/app文件夹 mkdir -p ~/python ~/...
  • docker配置python环境

    2021-05-29 14:18:54
    一、创建docker 容器: docker run -it ubuntu 安装ssh服务: apt install openssh-server apt update apt upgrade 启动ssh服务: service ssh start 设置ssh服务自动启动: echo 'service ssh start'>>~/...
  • docker运行python容器与本机carla交互安装docker开始安装创建python镜像并运行容器 安装docker 开始安装 由于apt官方库里的docker版本可能比较旧,所以先卸载可能存在的旧版本: $ sudo apt-get remove docker ...
  • 今天来记录一下使用Java调用DockerAPI创建docker容器,来部署python脚本的过程。
  • 利用Pycharm远程使用Docker中的Python环境一共分为4步: 准备拥有Python环境的DockerDocker安装ssh-server并生成新的镜像 运行新镜像,对外开放ssh端口 Pycharm连接Docker中的解释器 一、准备拥有Python环境的...
  • -- Dockerfile (名字固定,文件文件模板) -- requirements.txt (用pipreqs --encoding=utf8 --force 生成) 其中Dockerfile内容如下 #基于的基础镜像 FROM python:3.9.5 #代码添加到code文件夹 ADD . /...
  • docker流行的今天,部署项目无疑比以前学习的时候无疑更方便许多,趁着现在弄了一道flask,便写一篇新手教程篇部署flask,跟着本教程一步一步做就能部署成功。同时给出一些链接,想深入一点了解的可以自行深入学习...
  • In cases when a production server does not have access to the Internet or to the internal network, you will need to bundle up the Python dependencies (as wheel files) and interpreter along with the so...
  • pycharm 远程调试docker 中的Python脚本

    千次阅读 2018-11-14 20:40:38
    一、远程服务器以及docker配置ssh 1 原理 将docker中的ssh端口22映射到服务器中的某一个端口,例如...运行docker镜像,并且指定相应的端口映射关系 NV_GPU=5 nvidia-docker run -ti --name my_tensorflow1.9_py3 ...
  • 目录一、前言二、注意事项三、安装Docker for Windows四、下载 Ubuntu 基础镜像五、安装常用工具和 Python 环境六、配置 VIM七、提交镜像八、推送镜像到 Docker Hub 个人仓库 一、前言     &...
  •   在我们平时使用PyCharm的过程中,一般都是连接本地Python环境进行开发,但是如果是离线的环境呢?这样就不好搭建Python开发环境,因为第三方模块的依赖复杂,不好通过离线安装包的方式安装。本文将介绍如何...
  • python docker

    2019-09-23 17:33:31
    docker常用命令 docker ps -a 查看yare-demo的container-id docker exec -it 03df4594c149 /bin...docker top 03df4594c149 查看container里运行的进程(如下图就是postgres数据库) docker logs -f 3d23 查看doc...
  • Docker 部署mysql + python操作 1.部署mysql 拉取MySQL 镜像 默认拉去最新版本 docker pull mysql 或者指定版本 docker pull mysql:5.7 查看本地镜像 docker images 运行容器 设置 MySQL 服务 root 用户的...
  • 捣鼓了一天一直报错:Error running ‘mypython’: Can’t run remote python interpreter: the working directory ‘C:\Users\admin\Desktop\dc’ is invalid, it needs to be an absolute path 首先咱们得搞清楚...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,034
精华内容 8,413
关键字:

docker运行本地python文件

python 订阅