将项目部署到linux下的docker容器中
此时docker是已经安装好的状态 序言:介绍一下需要运行的Python项目的结构: ? ? ?平时在PyCharm里面运行该工程,只要直接运行server.py文件即可 ? ? ? 现在希望将该工程,部署到docker里面,使用容器启动: ? 步骤如下: ? 1:创建一个上传到Linux系统文件夹(文件名任意)docker_EF_NFCS是要上传到Linux系统,生成Docker镜像的文件夹 ? ? ? docker_EF_NFCS文件夹下面有两个东东, 一个Dockerfile文件(没有后缀名) Dockerfile文件内容如下: ? ? ? #基于的基础镜像 #代码添加到code文件夹 # 设置code文件夹是工作目录 # 安装支持 CMD ["python","/code/package/server.py"] -------------------------------------- 最后一条命令,就是说,当启动容器时候,执行server.py程序。 ? 一个EF_NFCS(任意起的名字)文件夹:包含工程的代码,和运行工程所需要的环境列表 ? ? package就是Python项目的package(整个源码所在目录)直接复制过来的 执行命令:pip freeze > requirements.txt ? ? 就在该目录下生成了一个requirements.txt文件: 如下图,可能很大,因为没有配合virtualenv ,就把整个环境中的包都列出来, 没关系,我们可以删除我们此工程中,不需要的组件 ? 2:上传到linux环境,生成镜像2.1:我们将docker_EF_NFCS文件夹,压缩成zip包,上传到Linux虚拟机系统中的某个路径下面 ? ? 2.2:解压: ? ? ?执行命令:unzip docker_EF_NFCS.zip 2.3:进入docker_EF_NFCS文件夹: ? ? 2.4:创建镜像: ? ? ? ? ?执行命令:docker build -t ef_nfcs_img . ? ? ? ? ?ef_nfcs_img 为创建的镜像名称,. 表示当前目录(docker_EF_NFCS) ? ? ? ? 查看镜像是否创建成功: 执行命令:docker images ? ? 可以看到ef_nfcs_img的镜像,已经存在了 ? 3:运行镜像,生成并启动容器 -it:表示交互式终端的容器,非启动后立刻结束的容器 -p 9060:9060:表示将docker的9060端口,映射到Linux虚拟机的9060端口 ? ? ? ? ? ? ? ? ? ? ? ? 也就是说,访问Linux虚拟机的9060端口,就是在访问docker容器的9060端口 --name ef_nfcs:给容器取个名字,嫌麻烦可以省去 ef_nfcs_img:容器是用哪个镜像启动的(一个容器,必须依赖一个镜像启动) ? ?和原来用PyCharm启动的效果一致: ? ? ? ? ? ?这就OK啦 ? ? 4:一些实用命令退出容器又不关闭容器:Ctrl + P + Q 比如这种情况: ? ? ? 直接输入exit 会退出且关闭容器,工程就stop了 或者Ctrl + C,会报错KeyboardInterrupt,工程就也stop了 再访问就访问不了了: ? ? 此时,就需要使用命令:docker start 容器ID,去再启动容器后,就可以继续访问工程了, 使用命令: docker?exec?-it?容器ID?/bin/bash 或者 docker attach? 容器ID,重新进入容器后,可查看程序打印的日志 ? ? 但是,如果使用Ctrl + P + Q退出容器,就不会中断工程,等于退出容器后,还可访问容器的工程, 再进入,也是使用命令:docker attach? 容器ID ? ctrl+d 退出容器且关闭,docker ps 查看无 ctrl+p+q 退出容器但不关闭 ? 查看安装的docker:yum list installed | grep docker 查看容器:docker ps -a 查看镜像:docker images 删除容器:docker rm?容器ID 删除镜像:docker rmi 镜像ID/镜像名 安装rz上传,sz下载的命令:yum -y install lrzsz docker inspect 容器ID:返回一个Json文件记录Docker容器的配置和状态信息 ? 将容器导出到容器的镜像文件 : docker export 容器ID > update.tar 用容器的镜像文件创建一个新静像:docker import - 镜像名 < update.tar? ? 创建完成之后,生成并启动镜像的容器:docker run -it? 镜像名 不行就在后面加一个/bin/bash,然后进入code的package目录,手动启动程序:python server.py 比如报错:Error response from daemon: No command specified ? ? ? 镜像保存为镜像文件: docker save -o update1.tar update(update是一个已经存在的镜像) 从镜像文件加载生成新镜像:docker load < update1.tar ? >>>>>>>>>>>>>>>BYE BYE<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |