Docker:在 ubuntu 系统上生成和加载 Docker 镜像

本文将介绍在 ubuntu系统上进行 Docker 镜像的生成和加载方法和代码。


文章目录

      • [一、下载和安装 docker](#一、下载和安装 docker)
      • [二、加载 docker 文件](#二、加载 docker 文件)
      • 三、保存你的镜像
      • [四、将镜像上传到云端并通过连接下载和加载 Docker 镜像](#四、将镜像上传到云端并通过连接下载和加载 Docker 镜像)
      • [五、Docker 容器和本地的文件交互](#五、Docker 容器和本地的文件交互)
        • [5.1 从容器复制文件到本地宿主机](#5.1 从容器复制文件到本地宿主机)
          • [5.1.1 单个文件](#5.1.1 单个文件)
          • [5.1.2 整个文件夹](#5.1.2 整个文件夹)
        • [5.2 从本地宿主机复制文件到容器](#5.2 从本地宿主机复制文件到容器)
          • [5.2.1 单个文件](#5.2.1 单个文件)
          • [5.2.2 整个文件夹](#5.2.2 整个文件夹)

一、下载和安装 docker

复制代码
sudo apt update
sudo apt install docker.io

二、加载 docker 文件

如果你已经下载了 sophgo-tpuc_dev-v3.2_191a433358ad.tar.gz 文件,可以使用以下命令加载本地镜像:

bash 复制代码
docker load < sophgo-tpuc_dev-v3.2_191a433358ad.tar.gz

使用以下命令列出所有本地镜像。

bash 复制代码
docker images

第一次运行你的 docker 镜像。以后直接 docker start name(本例子的镜像名称是 sophgo)。docker 中输入 exit 退出。

bash 复制代码
docker run --privileged --name sophgo -v $PWD:/home/zy/dockerfiles -it sophgo/tpuc_dev:v3.2

验证容器是否启动成功。

bash 复制代码
docker ps

停止并删除 docker 容器。

bash 复制代码
docker stop sophgo
docker rm sophgo

以后启动 docker 的时候,输入以下三行。

bash 复制代码
docker ps -a
docker start container_id
docker attach container_id

比如,本例的 docer 名字起了 sophgo。

bash 复制代码
docker ps -a
docker start sophgo 
docker attach sophgo 

三、保存你的镜像

bash 复制代码
docker save -o <保存路径> <镜像名称>:<标签>

比如,将镜像 sophgo/tpuc_dev:v3.2 保存到 /home/zy/dockerfiles 文件夹种。

bash 复制代码
docker save -o /home/zy/dockerfiles sophgo/tpuc_dev:v3.2

或者,把名为 sophgo/tpuc_dev:v3.2 的镜像保存为 sophgo.tar。

bash 复制代码
docker save -o sophgo.tar sophgo/tpuc_dev:v3.2

或者,把名为 sophgo/tpuc_dev:v3.2 的镜像保存为 sophgo.tar,并对文件进行压缩。

bash 复制代码
docker save sophgo/tpuc_dev:v3.2 | gzip > sophgo.tar.gz

也可以保存多个docker

bash 复制代码
docker save -o multiple-images.tar image1:tag1 image2:tag2

比如,将 sophgo/tpuc_dev:v3.2 和 aiserver:latest 两个镜像保存为 multiple-images.tar 文件。

bash 复制代码
docker save -o multiple-images.tar sophgo/tpuc_dev:v3.2 aiserver:latest

将某个运行中的容器保存为镜像,

bash 复制代码
docker commit <容器ID或名称> <镜像名称>:<标签>

比如,将 sophgo/tpuc_dev:v3.2 转换为 sophgo。

bash 复制代码
docker commit sophgo sophgo/tpuc_dev:v3.2

四、将镜像上传到云端并通过连接下载和加载 Docker 镜像

上传 Docker 镜像。

复制代码
// 待更新

下载 Docker 镜像。

复制代码
sudo docker pull registry.cn-hangzhou.aliyuncs.com/......

五、Docker 容器和本地的文件交互

5.1 从容器复制文件到本地宿主机
5.1.1 单个文件
bash 复制代码
docker cp <容器ID或容器名称>:<容器中的文件路径> <宿主机的目标路径>

比如,将 my_container 容器中的 /app/config.json 文件复制到本地宿主机的 /home/user/config.json 路径下。

bash 复制代码
docker cp my_container:/app/config.json /home/user/config.json
5.1.2 整个文件夹
bash 复制代码
docker cp my_container:/app/data /home/user/data
5.2 从本地宿主机复制文件到容器
5.2.1 单个文件
bash 复制代码
docker cp <宿主机的文件路径> <容器ID或容器名称>:<容器中的目标路径>

比如,将本地宿主机的 /home/user/config.json 文件复制到 my_container 容器中的 /app/config.json 路径下。

bash 复制代码
docker cp /home/user/config.json my_container:/app/config.json
5.2.2 整个文件夹
bash 复制代码
docker cp /home/user/data my_container:/app/data
相关推荐
lichenyang4533 小时前
Docker 学习笔记(五):Docker Compose,用一个 YAML 启动前端、后端和 MongoDB
docker
lichenyang4533 小时前
Docker 学习笔记(四):Dockerfile,把项目打成自己的镜像
docker·容器
lichenyang4533 小时前
Docker 学习笔记(三):Docker 网络、bridge、子网和容器互通
docker·容器
lichenyang4533 小时前
Docker 学习笔记(二):docker run 的参数到底在控制什么?
docker·容器
XIAOHEZIcode4 小时前
Ubuntu 终端美化全栈指南:Bash 到 Kitty 踩坑实录
linux·ubuntu·命令行
Patrick_Wilson5 天前
从「改个端口」到 502:Next.js on k8s 的容器端口、Service 映射与 env 覆盖
docker·kubernetes·next.js
Suroy5 天前
DockerView-Go:用 Go 写一个终端 Docker 监控工具,顺便做了个 Web 仪表盘
docker
云恒要逆袭5 天前
运行你的第一个Docker容器
后端·docker·容器
宋均浩6 天前
# Docker 镜像瘦身实战:从 1.2G 到 80MB 的五个优化步骤
ci/cd·docker
程序员老赵7 天前
10 分钟部署 OpenCode:Docker 一键安装,浏览器打开就能用 AI 写代码(附完整命令与排错)
docker·容器·ai编程