docker外部运行程序

最近思考如何不进入容器使用docker中安装的程序运行宿主机脚本, 尝试了多种方法,终于实现了目标

  • 运行docker
假设你已经安装好了docker,并下载好了镜像,你需要后台运行docker镜像, 目标脚本是/home/test/文件夹中test.py, 如下图所示:
111.jpg

1.首先运行docker 镜像,并在后台挂起

docker run -d -v /home/test:/test -p 8888:8888 73a20c2c0b6b /bin/sh -c "while true; do echo hello world; sleep 100;done"

解释:
1.   -d :后台运行容器,并返回容器ID(不进入容器)
2.   /home/test:/test :宿主机文件夹映射到容器的文件夹(任意名称都可以)
3.   73a20c2c0b6b :IMAGE ID
4.   若只执行下面命令 docker run -d -v /home/test:/test -p 8888:8888 73a20c2c0b6b 
     则容器不会在后台持续运行, 会直接退出容器,因此需要添加一个持续运行的脚本,
     这里执行一个死循环的脚本使容器持续运行(当然top之类的命令也可以)
5.   运行上述命令会返回容器ID,当然也可以使用docker -ps -a 获取

2.执行脚本

docker exec -ti 3ee54e0a /test/test.py
[out]:ok

解释:
-i :即使没有附加也保持STDIN 打开
-t :分配一个伪终端
/test/test.py :容器映射宿主机脚本

你可能感兴趣的:(docker外部运行程序)