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

拉取本地的 Docker 镜像的三种方法

方法 1:通过 docker save 和 docker load 导出和导入镜像

  1. 在本地服务器上导出镜像: 使用 docker save 将镜像保存为一个 .tar 文件:

    docker save -o mysql-5.7.tar mysql:5.7
  2. 将镜像文件传输到其他服务器: 你可以通过 scp 或其他文件传输工具,将 .tar 文件传输到目标服务器。例如,使用 scp

    scp mysql-5.7.tar root@目标机器IP:/root
  3. 在目标服务器上导入镜像: 在目标服务器上,使用 docker load 命令导入该镜像:

    docker load -i /root/mysql-5.7.tar

这样,目标服务器就能够使用你传输过来的本地镜像了。

在成功加载镜像之后,你可以使用 docker run 命令启动容器。你可以根据你的需要配置容器参数,例如端口映射、环境变量等。

以启动 mysql:5.7 为例,可以按以下方式操作:

启动 MySQL 容器
运行 MySQL 容器:
启动一个容器并将其映射到宿主机的端口:

docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=root -d -p 3306:3306 mysql:5.7
这里的参数解释:

--name mysql-container:指定容器的名称为 mysql-container。
-e MYSQL_ROOT_PASSWORD=root:设置 MySQL 容器的 root 用户密码为 root(可以根据需要修改密码)。
-d:让容器在后台运行。
-p 3306:3306:将容器的 3306 端口映射到宿主机的 3306 端口(使你可以通过宿主机访问 MySQL)。
mysql:5.7:使用的镜像。
检查容器是否启动:
启动后,你可以使用 docker ps 命令查看容器是否在运行:

docker ps
进入容器:
如果你需要进入容器的命令行,可以使用 docker exec 命令:

docker exec -it mysql-container bash
这将允许你在容器内部执行命令。

连接到 MySQL 数据库:
在容器内,你可以通过以下命令连接到 MySQL 数据库:

mysql -u root -p
然后输入密码(你之前在 -e MYSQL_ROOT_PASSWORD 中设置的密码)。

 

方法 2:通过私有 Docker Registry 共享镜像

  1. 搭建私有 Docker Registry: 你可以在本地搭建一个私有 Docker Registry 服务器,其他服务器可以从这个 Registry 拉取镜像。

    • 启动 Docker Registry:

      docker run -d -p 5000:5000 --name registry registry
  2. 将镜像推送到私有 Registry: 你需要将本地镜像标记为私有 Registry 的地址并推送到 Registry。假设你的 Registry 在 localhost:5000,可以按以下步骤操作:

    • 标记镜像:

      docker tag mysql:5.7 localhost:5000/mysql:5.7
    • 推送镜像:

      docker push localhost:5000/mysql:5.7
  3. 在其他服务器上拉取镜像: 在目标服务器上,你需要首先确保能够访问你的 Registry(例如通过 IP 地址或 DNS)。然后,可以通过以下命令拉取镜像:

    docker pull localhost:5000/mysql:5.7

方法 3:通过 Docker Hub 公共或私有仓库

如果你希望更广泛地共享镜像,你可以将镜像推送到 Docker Hub(官方 Docker 镜像仓库)或者其他公共/私有的 Docker 镜像仓库。

  1. 注册 Docker Hub 账户: 如果你没有 Docker Hub 账户,需要注册一个 Docker Hub 账户.

  2. 登录 Docker Hub:

    docker login
  3. 将镜像推送到 Docker Hub: 标记镜像并推送到 Docker Hub(例如,如果你的用户名是 yourusername):

    docker tag mysql:5.7 yourusername/mysql:5.7 docker push yourusername/mysql:5.7
  4. 在其他服务器上拉取镜像: 其他服务器只需执行以下命令即可拉取该镜像:

    docker pull yourusername/mysql:5.7

总结

  • 方法 1docker save 和 docker load)适用于较小范围的分享,适合离线传输。
  • 方法 2(搭建私有 Registry)适合公司内部共享镜像。
  • 方法 3(Docker Hub)适合更广泛的共享,尤其是需要跨多个网络的情况。
http://www.lryc.cn/news/531797.html

相关文章:

  • springboot+vue+uniapp的校园二手交易小程序
  • NeetCode刷题第21天(2025.2.4)
  • 人工智能|本地部署|ollama+chatbox快速Windows10下部署(初级篇)
  • chrome插件模板;使用 React 18 和 Webpack 5 的 Chrome 扩展样板
  • 大语言模型极速部署:Ollama 与 One-API 完美搭建教程
  • 【C++】STL——list底层实现
  • Java 进阶day14XML Dom4j 工厂模式 Base64
  • 100.6 AI量化面试题:如何评估AI量化模型的过拟合风险?
  • C++模板:泛型编程的魔法钥匙
  • unordered_map/set的哈希封装
  • 机器学习专业毕设选题推荐合集 人工智能
  • 软件工程导论三级项目报告--《软件工程》课程网站
  • 物联网领域的MQTT协议,优势和应用场景
  • 缓存类为啥使用 unordered_map 而不是 map
  • 产品经理的人工智能课 02 - 自然语言处理
  • 2024年MySQL 下载、安装及启动停止教程(非常详细),涉及命令行net start mysql80提示发生系统错误5的解决方案
  • 19.[前端开发]Day19-王者荣项目耀实战(二)
  • lmk内存压力测试工具mem-pressure源码剖析
  • 企业四要素如何用Java进行调用
  • 修剪二叉搜索树(力扣669)
  • 一款由 .NET 官方团队开源的电子商务系统 - eShop
  • 论最新技术编程类有什么,值得关注的点有什么呢?
  • Java入门进阶
  • Java并发编程面试题:ThreadLocal(8题)
  • Zabbix7.0安装(Ubuntu24.04+LNMP)
  • 从 0 到 1 构建数仓之DWD层
  • S4 HANA手工记账Tax Payable – FB41
  • 【自然语言处理(NLP)】NLP实战:IMDB影评情感分析项目
  • DIY Shell:探秘进程构建与命令解析的核心原理
  • 通过Redisson构建延时队列并实现注解式消费