Docker镜像打包,与主机互传文件,修改、上传dockerhub

1、打包

sudo docker export c934b2e7dab5 >face_recognition_py3.tar

打包完成后,1.3G占用sd卡空间过大,用winSCP下载到电脑保存,

树莓派3B+ 与 win10 通过小米路由5G WiFi 网络传输,下载完成后,删除sd上打包文件:

删除后,恢复打包前大小:

修改:

镜像修改的方式是先运行一个现有的镜像,然后在运行的容器中进行软件的更新操作。比如:安装软件、服务之类。

在完成软件安装/更新/升级之后,先exit退出,再对该镜像进行提交操作,即做一个保存操作。

docker cp命令,能够在容器和执行该命令的机器的本地文件系统之间复制文件或目录。

1. 使用格式

1)从容器中复制文件或目录到执行命令所在机器的指定路径
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-

2)从执行命令所在的机器复制文件或目录到容器内部的指定路径
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
 

2. 唯一选项说明
--follow-link, -L,总是follow在SRC_PATH中的symbol link
 

3. 功能说明

  • docker cp命令类似于UNIX中的cp -a命令,递归复制目录下的所有子目录和文件
  • -表示通过标准输入/输出设备以流的方式读取或写入tar文件
  • 本地文件系统中的路径可以是绝对路径,也可以是相对路径,相对于当前命令执行的路径
  • 容器中的路径都是相对容器的/根路径
  • 被操作的容器可以是在运行状态,也可以是停止状态
  • 不能复制/proc, /sys, /dev, tmpfs和容器中mount的路径下的文件

4.示例

本地-容器: 

docker cp /home/pi/Desktop/cv_test1/0test.jpg b26cf49aa20f:/media
 docker cp /home/pi/Desktop/cv_test1/0test.jpg c934b2e7dab5:/media

容器-本地:

 docker cp c934b2e7dab5:/face_recognition_pi.zip /home/pi/Desktop/cv_test1

复制文件:

复制文件夹:

打包成镜像:

docker commit -m="downloan face_recognition github and test examples" -a="jacka654321" c934b2e7dab5 jacka654321/face_recognition:v2

-m:提交的描述信息
-a:指定镜像作者
c934b2e7dab5:容器ID,在容器执行时可以在命令行开头查看。比如:root@c934b2e7dab5 中@之后的内容。此外还可以通过docker ps来查看
jacka654321/face_recognition:v2:指定要创建的目标镜像名




接着,就可以使用新定制的镜像了。

启动容器测试:

docker run -t -i jacka654321/face_recognition:v2 /bin/bash  

正式使用:

docker run -it \
    --name face_recognition_v2 \
    --device /dev/vchiq \
      jacka654321/face_recognition:v2 \
      /bin/bash

其中关键之处就在于将摄像头设备/dev/vchiq挂载到容器内部,这样就可以让容器中的应用来拍摄照片和视频。

上传至你的dockerhub:

登录:

使用您的Docker ID登录 
如果您没有Docker帐户,请在cloud.docker.com注册一个 。记下你的用户名和密码。(需翻墙注册) 
登录到本地计算机上的Docker公共注册表。 
 

docker login

登录成功:

发布镜像 :
将您的标记镜像上传到存储库: 
docker push username/repository:tag

docker push jacka654321/face_recognition:v2

光纤200M上传3.75M/s,实际上传速率1.1M/s,速度还是可以的,很快上传完成了。

https://hub.docker.com/r/jacka654321/face_recognition/

Docker Pull 下载:

docker pull jacka654321/face_recognition:v3

直接复制粘贴 命令不行,还有加上版本tag

退出容器:

docker stop [NAME]/[CONTAINER ID]:将容器退出。
docker kill [NAME]/[CONTAINER ID]:强制停止一个容器。

参考链接:

docker镜像创建与基本使用

https://blog.csdn.net/five3/article/details/75669884

如何使用Docker部署一个web项目并打包成镜像文件

https://blog.csdn.net/JXYZH11/article/details/79112655

docker 基础命令之镜像篇

https://blog.csdn.net/Soar_Away/article/details/52135250

猜你喜欢

转载自blog.csdn.net/jacka654321/article/details/82320244
今日推荐