赞
踩
总结Docker build Py代码运行,映射本地文件。
首先简单写一个py文件,同时写好Dockerfile文件,并将代码依赖输出到requirements文件。下面是py和Dockerfile文件内容。
import numpy as np
import pandas as pd
a = np.array([1, 2, 3])
print('ok')
print(a)
pd.DataFrame(a, columns=['A']).to_csv('./submit.csv', encoding='utf-8', index_label='日期', float_format='%.2f')
# python版本,可根据需求进行修改
FROM python:3.7
RUN mkdir /code
# 将python程序添加到镜像
ADD hello.py /code/
# 将项目依赖添加到镜像
ADD requirements.txt /code/
WORKDIR /code
RUN pip install -r requirements.txt
# 镜像运行时执行的命令,这里的配置等于 python CSDN.py
ENTRYPOINT ["python","hello.py"]
然后在文件目录下,按着shift鼠标右击空白处启动win的powershell,输入如下命令
docker build -t mydemo:3.7 .
mydemo是任意起的名字,冒号后边是版本号,最后有一个点号代表当前路径。build结束后,就可以在Docker desktop或者ubuntu下查看。
下面,你可以使用命令启动代码,-v就是将本地路径映射到容器 D:/myapp就是我的文件存放的路径,Dockerfile已经指定了工作路径,然后启动镜像就行。
docker run -it -v D:/myapp:/code mydemo:3.7 /bin/bash
或者也可以使用docker desktop启动,如下图,一定要映射路径,否则容器运行完就stop。
可以看到,结果打印了,并在本地路径生成了submit.csv文件。
我们可以将镜像打包为tar并取回本地,但是在ubuntu中好像不能直接取回win,先将tar拷贝到容器中,在取回本地。首先创建一个文件demo,然后save命令即可。
docker save mydemo:3.7 > ./demo.tar
docker cp demo.tar 8876900e44df:/usr
使用docker cp 本机文件 容器id:容器内路径,就可以拷贝进容器了
同时,在win下边使用命令就可以将这个tar取回本地
docker cp 8876900e44df:/usr/demo.tar .
同时,我们可以load命令,导入这个镜像,然后就可以docker images查看并运行了
docker load < ./demo.tar
有时候,我们也想看看容器里的文件,这个时候就用inspect命令。
上图中,可以看到,正在运行的容器为空,使用-a可以查看全部容器,使用inspect查看
docker inspect 2c333b3624d1
弹出的一大串信息中,比如我想查看workingdir目录,可以使用如下命令,-i后边可以是dir也可以是path
但是容器已经停止了想看里边的文件,就拷贝出来就行,把用户名替换你的
docker cp 2c333b3624d1:/code /home/baozouxiaoxian(用户名)/demo
我们同样可以使用inspcet查看一个stop的容器,我们直接查看工作路径,这时,我们新建一个abc容器,启动一下,我们看abc现在已经stop
我们也可以在win下边拷贝code到本地,内容和ubuntu里的是一样的,但是如果本地的文件被删除,那么容器里的也会删除,比如我们删除submit文件,在拷贝一次code
但是,ubuntu的submit文件还在,可以将他拷贝到一个新启动的容器中,在拷贝本地。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。