Docker笔记:容器转换成镜像,导出导入镜像,数据拷贝,查看日志

docker commit 将容器转换成镜像

  • 可以把容器转换成镜像
  • 镜像没有写入权限,但可以通过修改容器把容器制作成新镜像
  • 启动容器后,就给容器提供了一个可写层,
    • 在容器里,可安装软件,可创建文件 ...
    • 转换成镜像,之后别人启动你的新制作镜像,就有了你操作的一切
  • $ docker run -it --name myalpine alpine /bin/sh
    • $ cd root/
    • $ ls
    • $ echo xxx > aaa.txt
    • $ cat aaa.txt
    • $ exit
  • 将 myalpine 容器制作成镜像
    • $ docker commit myalpine myalpine
    • 格式: $ docker commit 容器id/容器name 新镜像名称
  • 这样就实现了将容器转换成镜像 myalpine

导出导入镜像文件(压缩和解压)

  • 导出:$ docker save 555553322xs > myalpine.tar

    • 语法:$ docker save 镜像id > 压缩包名称
  • 导入,别人解压使用: $ docker load < myalpine.tar

    • 这时候解压缩了,但是没有名称,没有tag,打tag和加名称处理
    • $ docker tag imageId myalpine:v1.0.0
    • 语法 $ docker tag imageId 名称:标签
    • 继续使用 ...

docker cp 实现数据的拷贝

  • 将主机 /www/xxx 目录拷贝到容器 myalpine 的 /root 目录下
  • 先将容器运行起来
    • $ docker run -it -d --name mycentos imageId /bin/bash
    • 进入 mycentos容器中的 /root 目录 ls 以下
  • 开始复制,从物理机到容器
    • 语法: $ docker cp 本地目录 容器id:目录
    • $ docker cp /www/xxx 容器id:容器路径
      • 容器id:容器路径 例如: c5ff8b002432:root
    • 进入 docker 容器内部,查看
      • $ docker exec -it mycentos /bin/bash
      • $ cd /root , 之后 ls
      • 发现多了 xxx 目录
  • 拷贝文件到容器并且重命名
    • $ docker cp /root/aaa 容器id:root/bbb
      • 将 aaa 拷贝到容器中,并修改成 bbb
  • 同样,也可将容器中的目录拷贝到物理机上
    • $ docker cp c5ff8b002432:root/a.txt /root
      • 这里将容器内的 root/a.txt 文件拷贝到 物理机的 /root 目录
  • 将物理机当前目录中的所有文件复制到 容器目录内的aaa目录
    • $ docker cp . c5ff8b002432:root/aaa

查看 docker 操作日志

  • 进入容器: $docker run -it --name mycentos c5ff8b002432 /bin/bash
    • $touch aa.txt 执行命令
  • $exit 会停止容器
  • 退出不停止容器,ctrl + p + q
  • $docker ps
    • 显示容器还在运行
  • 查看容器中刚才运行的命令
    • $docker logs c5ff8b002432 可以看容器的操作日志
相关推荐
孙克旭_11 小时前
k8s基础组件与创建资源
运维·docker·容器·kubernetes
java_logo1 天前
Docker 部署 EmulatorJS:轻松搭建浏览器复古游戏平台
游戏·docker·容器·复古游戏·轩辕镜像·emulatorjs·红白机
方便面不加香菜1 天前
Docker Container --容器及容器的操作案例详解
运维·docker·容器
无人生还别怕1 天前
如何搭建docker仓库(轻量级)registry
linux·运维·docker·云原生·容器·registry·openanolisos
YYYing.2 天前
【K8s系列 (一) 】Docker与容器(上篇)
docker·云原生·容器·kubernetes
csdn_aspnet2 天前
使用 Docker 和 RedisInsight 设置 Redis 以进行本地开发
redis·docker·容器·redisinsight
余槐i2 天前
MySQL 8.0 联合索引走错:为什么加了索引查询反而从 200ms 变成 8s
java·spring boot·mysql·docker·性能优化
csdn_aspnet2 天前
如何在本地 Docker 容器中运行 Redis,并使用 Redis Insight 和 Redis CLI 进行管理
redis·docker·容器
且从容.2 天前
Ubuntu 安装 Docker
linux·ubuntu·docker
todoitbo2 天前
我在 Mac 上用 Docker 部署 Nexent:从拉取镜像到接入模型
macos·docker·大模型·ai智能体·nexent·快速入门与环境准备