首先拉取镜像:Pull an image or a repository from a registry
docker pull python:3.8
现在可以看到名为python3.8的镜像:
docker images
但是现在还没有容器,查看容器列表all
docker ps -a
运行容器run: Run a command in a new container
docker run -it -v /media/DATA1/dock_test:/root/numpytest python:3.8 bash
这个run命令怎么用可以速查
docker run --help
-i, --interactive
-v, --volume list Bind mount a volume(冒号前后就是容器和宿主机的共享映射文件夹)
bash:进入容器命令行。
安装依赖包
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
测试python程序
首先在宿主机文件夹存入以下numpy_test.py文件
import numpy as np
x=np.random.randint(3,20,20).reshape(4,5)
print(x)
结果
root@75ea98c791a7:/# python /root/numpytest/numpy_test.py
[[ 8 18 16 9 8]
[11 13 3 13 14]
[ 8 9 7 14 6]
[12 13 18 9 9]]
退出容器
exit
查看当前运行的容器
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7c301678db40 python:3.8 "python3" 3 hours ago Up 3 hours vigilant_chebyshev
打包镜像,commit Create a new image from a container's changes
docker commit -a "leon" -m "numpy python test" 7c301678db40 numpytest:v1
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
查看镜像会发现新的镜像名称和tag已经创建。
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
numpytest v1 3d27891ec102 24 seconds ago 882MB
python 3.8 79cc46abd78d 5 days ago 882MB
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7c301678db40 python:3.8 "python3" 4 hours ago Up 4 hours vigilant_chebyshev
停止容器
docker stop 7c301678db40
现在白忙活了,所以创建容器时,需要将共享文件夹把文件复制出来,下次才能重复使用。
docker pull python:3.8
docker run -it -v /media/DATA1/dock_test:/root/1 python:3.8 bash
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
cd root
mkdir my_test_python
cp /root/1/numpy_test.py /root/my_test_python/numpy_test.py
exit
docker commit -a "leon" -m "numpy test" 3628389e96e2 numpytest:v2
大功告成,直接运行容器中的文件:
docker run numpytest:v2 python /root/my_test_python/numpy_test.py
删除容器
docker rm -f <container_id_or_name>
docker container prune