赞
踩
项目完成后需要打包成镜像然后发布,因为镜像里包含了配置文件及所需要的包。制作镜像的三种办法:
目录
一、如果项目较小,且所需依赖不是很多,直接将项目文件上传至容器内,并安装所有程序运行需要的包。最后保存镜像。
二、在基础镜像上安装所有程序运行需要的包,最后保存镜像。(项目代码不需要放进镜像)
3.1 如果启动的是服务程序,需要指定端口映射,端口映射通过-P和-p参数来实现。
运行镜像,打开新的命令行,查看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代码
- docker load -i comments_classification.tar
-
- docker pull python:3.5 # [REPOSITORY:TAG]
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---------------')
docker run -v /home/bx_admin/jenkins_work/test:/usr/src/python -w /usr/src/python python:3.5 python test.py
命令说明:
3.1.1 -p指定要映射的端口,一个指定端口上只可以绑定一个容器;支持的格式如下:
①IP:HOSTPORT:CONTAINERPORT
:指定ip、指定宿主机port、指定容器port
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
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
docker run -itd -p 8000:80 docker.io/centos:latest /bin/bash
注:上边的操作默认会绑定本地所有接口上的所有地址。
查看映射端口配置:
docker port CONTAINER_ID
本节参考:https://www.cnblogs.com/wholj/p/10551999.html
执行test.py文件后,可以看到当前目录是/usr/src/python,可以看出我们的脚本输出的是docker容器中的目录,而不是我们宿主机的目录 。
再看直接使用服务器python直接该文件的打印,当前目录是home/bx_admin/jenkins_work
先看执行前的容器 docker ps -a ,当前一共只有两个容器
docker执行python文件后(相当于新建了一个容器)
注意:即使文件执行失败了,但是新容器还是新生成了
删除容器:docker rm -v a7505a43e238
参考:CentOS 7上使用docker运行python脚本文件 https://blog.csdn.net/shuyaoyao/article/details/108692158
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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。