docker打包web项目镜像并导出(不使用Dockerfile)

1、docker拉取tomcat镜像
docker pull tomcat:TAG   (TAG指定版本号)
2、查看已有的镜像
docker images

在这里插入图片描述

3、用tomcat镜像启动容器
 docker run -d -p 8080:8080 --name 容器名 tomcat:TAG  
4、查看已启动的容器
docker ps

在这里插入图片描述

5、修改容器时区(保持容器的系统时间与外部时间一致,非必要)
# 1.先进容器内部
docker exec -it 容器id /bin/bash   
# 2.设置上海时间
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

也可以在启动时指定时区
docker run -e TZ="Asia/Shanghai" -d -p 8080:8080 --name nginx nginx

6、查看启动日志
docker logs 容器ID
7、将war包放在容器中
docker cp sourcePath/webapp.war 容器ID:/usr/local/tomcat/webapps      sourcePath为war包存放路径
8、重启容器
docker restart 容器ID

重复步骤6,查看启动日志
9、访问测试
curl http:127.0.0.1:8080/项目名   看到的是HTMl标签

如果是windows上,可以直接在浏览器访问
如果部署在服务器上,想要在外网访问,需要有IP和端口的访问权限
我这里用的是阿里云服务器需要去云服务器管理平台配置安全组规则

像这样添加一条就好啦

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8SVGvYg6-1683688617273)(../img/image-20230510105952206.png)]

10、用已存在的容器创建一个新的镜像

当现在的容器运行正常之后就可以把这个容器构建为新的镜像了

docker commit 容器id  镜像名称:TAG    TAG表示版本号,自定义即可,镜像名也自己设置

新的镜像构建成功了执行第二步,查看全部镜像

docker images
11、导出镜像
先进入想把导出的镜像存放的路径
然后执行:
docker save -o name.tar 镜像ID
就把镜像打包存放在你指定的路径了,然后把这个文件发给别人就行啦!
### 使用 Docker 打包 Python 应用程序镜像 #### 准备应用程序环境 确保本地开发环境中有一个完整的 Python 项目,该项目应包含所有必要的源代码文件以及 `requirements.txt` 文件。如果尚未生成 `requirements.txt` 文件,在项目的根目录下可以使用以下命令来自动生成: ```bash pip freeze > requirements.txt ``` 此操作会记录当前虚拟环境中已安装的所有依赖项。 #### 创建 Dockerfile 在应用程序的根目录中创建名为 `Dockerfile` 的文件,该文件定义了构建 Docker 镜像所需的指令。对于大多数标准 Python Web 应用而言,典型的 `Dockerfile` 可能看起来如下所示[^5]: ```dockerfile FROM python:3.7.7 ADD ./pdf_reader /code WORKDIR /code RUN pip install -r requirements.txt CMD ["python3", "Api.py"] ``` 这段配置指定了基础镜像是官方发布的 Python 3.7 版本;将主机上的 pdf_reader 目录复制到容器内的 `/code` 路径下;设定工作目录为 `/code` 在此处执行后续命令;通过读取 `requirements.txt` 来安装所需库;最后指定启动容器时要运行的应用入口脚本。 #### 构建测试镜像 完成上述准备工作之后,可以在终端窗口中切换至包含 `Dockerfile` 和其他资源文件的项目根目录位置,输入下面这条命令来构建新的 Docker 镜像[^4]: ```bash docker build -t my_python_app . ``` 这将会按照 `Dockerfile` 中给出的一系列指示逐步组装成一个新的 Docker 映像实例,命名为 `my_python_app`。一旦成功编译完毕,则可以通过下列方式快速验证新建立起来的服务是否正常运作: ```bash docker run -d -p 5000:5000 my_python_app ``` 这里 `-d` 参数表示以后台模式启动容器,而 `-p` 则用于映射宿主机与容器之间的网络端口关系,使得外部能够访问内部服务接口。 #### 导出和分发镜像 当确认一切无误后,还可以考虑把最终版本的 Docker 形态打包保存下来以便日后迁移部署或分享给他人使用。具体做法是先利用 `save` 命令将其转换成为 `.tar` 格式的二进制流存档文件,再借助 FTP/SFTP 或者云盘等方式传输至目标机器上加载回原貌即可: ```bash docker save -o my_python_app.tar my_python_app ``` 接收方收到 tarball 后只需简单地调用一次 `load` 即可恢复整个软件栈及其关联数据集: ```bash docker load -i my_python_app.tar ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值