当前位置: 首页 > news >正文

拉取windows的docker镜像转到服务器上构建服务镜像

在windows上将拉取ubuntu的docker镜像转到服务器上

1.要求

1.1 要求windows和服务器安装好docker

2.拉取ubuntu镜像到windows(dos操作,可能需要连接到外网)

一旦你选择了一个合适的基础镜像,你可以使用docker pull命令从Docker Hub下载它。命令格式如下:

docker pull [镜像名称]:[标签]

例如,要拉取最新版本的Ubuntu基础镜像,你可以运行:

docker pull ubuntu:latest

如果你想要拉取特定版本的镜像,比如Ubuntu 20.04,你可以指定标签,或18.04:

docker pull ubuntu:18.04

3.打包镜像

docker save -o ubuntu1804.tar ubuntu:18.04

在这里插入图片描述

4.将windows上的压缩包发送到服务器

注意查看操作save时的位置,tar压缩包就在此。

5.把从别的地方拷贝过来的tar docker镜像,加载到服务器

docker load -i /path/to/image.tar

在这里插入图片描述

6.然后就可以正常创建容器等操作了



(懒人一体式打包镜像)

从容器构建服务,打包到镜像,使用Dockerfile构建镜像

:服务器上面有个docker容器,容器中安装了一个服务,使用命令/data/miniconda3/envs/ner_py37/bin/python ner_flask.py可运行该程序,并启动端口8123。现在需要将它打包为镜像,并写一个dockerfile,发送到另外一个服务器上进行运行服务并开放端口,完成这个操作流程。

准备工作

将服务全部打包到容器中

查看元数据:docker inspect 容器ID
找到"MergedDir"目录,将服务的需要文件放置在其中比如:/data目录

一、打包现有容器为镜像

  1. 查找容器ID

    docker ps -a

  2. 提交容器为镜像

    docker commit -m "打包Flask服务" -a "作者信息" <容器ID> ner-flask:1.0

    • -m:提交说明
    • -a:作者信息(可选)
    • <容器ID>:替换为实际容器ID

    例如:
    docker commit -m "flask-server" -a "Lili" deac5058b9cd ner-flask:1.0

二、编写Dockerfile

  1. 创建Dockerfile文件
  
# 基于已提交的镜像 
FROM ner-flask:1.0 # 指定工作目录
WORKDIR /data/q/server/ner4cpu# 声明服务端口 
EXPOSE 8088 # 启动命令(需与容器内路径一致)
CMD ["/data/miniconda3/envs/ner_py37/bin/python", "ner_flask.py"] 
  1. 在Dckerfile目录创建dockerDockerfile
    从前面的ner-flask:1.0镜像构建一个生产服务镜像。
    docker build -t ner-flask-server:1.0 .
    在这里插入图片描述
    此处产生了作为小白本白不理解的疑惑,为何创建了2次镜像,第1次的commit不知该如何省略,以后再优化吧…
    o(╥﹏╥)o o(╥﹏╥)o o(╥﹏╥)o

三、保存并传输镜像

  1. 导出镜像为压缩文件

    docker save -o ner-flask-server.tar ner-flask-server:1.0
    在当前目录下产生一个文件:ner-flask-server.tar

  2. 传输到目标服务器

    scp ner-flask.tar user@目标服务器IP:/目标路径/

    • 也可用rsync或SFTP工具传输

四、目标服务器部署

  1. 加载镜像

    docker load -i ner-flask.tar

  2. 运行容器

    docker run -d -p 8123:8123 --name ner-service ner-flask-server:1.0

    • -d:后台运行
    • -p 8123:8123:映射宿主机与容器端口

五、验证服务

  1. 检查容器状态

    docker ps -a | grep ner-service

  2. 测试端口连通性

    curl http://目标服务器IP:8123

其它方式构建服务镜像

(更灵活的打包镜像)

Dockerfile

FROM continuumio/miniconda3:4.7.12  # 明确基础镜像 
RUN conda create -n ner_py37 python=3.7 
COPY /data  /data/
# 安装 Python 依赖 
RUN conda run -n ner_py37 pip install -r /data/***/requirements.txt  
EXPOSE 8123 
CMD ["conda", "run", "-n", "ner_py37", "python", "ner_flask.py"] 

相关文章:

  • 裸金属服务器的应用场景有哪些?
  • 深度学习| Deep Snake环境配置+训练+预测评估(超全面)
  • 如何快速安装和使用AI数字人?AIStarter详细教程与操作指南
  • 【工具】gtest
  • Spring数据访问全解析:ORM整合与JDBC高效实践
  • 楼梯上下检测数据集VOC+YOLO格式5462张2类别
  • 【国家能源集团生态协作平台-注册/登录安全分析报告】
  • 【疑难杂症】【VS Code】VS Code连接不上远程服务器
  • [TriCore][TC3XX][用户手册] - 16.中断控制器 - IR
  • 计算机视觉——基于使用 OpenCV 与 Python 实现相机标定畸变校正
  • C++数据收发管道:构建高效的数据传输通道
  • 【天外之物】概念区分:磅(力)与磅(质量)
  • mysql8.0 创建全文索引及mysql 8.0.32创建全文索引报错 Duplicate entry null-null的解决方案
  • 从数据质量看起,数据治理在做什么?
  • Java集合框架深度解析:HashMap、HashSet、TreeMap、TreeSet与哈希表原理详解
  • 数据可视化笔记:柱状图
  • 查看matlab函数帮助文档的方法
  • 下拉框select标签类型
  • 《操作系统真象还原》第九章(2)——线程
  • 完整的 .NET 6 分布式定时任务实现(Hangfire + Redis 分布式锁)
  • 第八届进博会倒计时200天,超100家展商将连续八届参展
  • 夜读丨石头比月光温柔
  • 让观众从演唱会现场走到商场,上海虹口构建“票根经济”生态链
  • 圆桌|艺术院校校长怎么看AI时代的艺术教育
  • 稳外贸|上海南港码头汽车出口增幅明显,3015辆新特斯拉Model Y首次批量出口
  • 秦洪看盘|再拉尾盘,强化稳定预期