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

拉取本地的 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.kler.cn/a/533529.html

相关文章:

  • C语言:深入了解指针3
  • UE求职Demo开发日志#21 背包-仓库-装备栏移动物品
  • LabVIEW的智能电源远程监控系统开发
  • [创业之路-273]:《发现利润区》的主要内容与核心思想
  • 使用开源项目:pdf2docx,让PDF转换为Word
  • UE学习日志#21 C++笔记#7 基础复习7 string和string_view1
  • 解决DeepSeek服务器繁忙问题:本地部署与优化方案
  • windows下玩转vllm:vllm简介
  • 【怎么用系列】短视频戒除-1-对推荐算法进行干扰
  • 怎么让PDF文档变小一点?
  • 求分数序列和(信息学奥赛一本通-1078)
  • 【算法篇】贪心算法
  • 【Elasticsearch】索引性能优化
  • 自指学习:AGI的元认知突破
  • python读取excel工具:openpyxl | AI应用开发
  • Spring Web MVC项目的创建及使用(一)
  • doris:临时分区
  • 拉格朗日乘数法算法详解Python实现
  • Math Reference Notes: 符号函数
  • 013-51单片机红外遥控器模拟控制空调,自动制冷制热定时开关
  • java基础05——java泛型
  • Java进阶——IO 流
  • [25] cuda 应用之 nppi 实现图像色彩调整
  • Java进阶(JVM调优)——阿里云的Arthas的使用 安装和使用 死锁查找案例,重新加载案例,慢调用分析
  • 解决浏览器播放音频声音,没交互前不播放问题
  • 设计模式Python版 外观模式