完整的docker打包流程

完整的docker打包流程

把外网服务器上的docker搬到内网使用时,报了两个错误,外网容器到tar包都没问题,在内网使用tar包的时候报了两个错误

  1. cannot connect to the Docker daemon at is the docker daemon running
  2. starting container process caused: "exec: "/bin/sh": stat /bin/sh: no such file or directory

发现是tar包到镜像的问题,我用的命令是docker load --input xxx.tar
正确的是docker load < xxx.tar

现总结整个docker打包搬运流程如下:

1. 将容器变为镜像
docker commit 261314c94305 imagexxx

可用参数
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
imagexxx 是新创建的镜像的名字

2. 将镜像打包成tar包
docker  save  -o xxx.tar  imagexxx # 当前路径下会生成一个xxx.tar

例如:

docker save -o electric_know_1.31_0.tar electric_know_1.31_0:latest
3. 将tar包再次压缩为gz包
tar -zcvf xxx.tar.gz     xxx.tar    # 当前路径生成一个xxx.tar.gz压缩包
4. 将tar.gz 挪到内网服务器
5. 将tar.gz 解压缩,会生成一个tar包
tar -zxvf xxx.tar.gz
6. 将tar包生成镜像
docker  load  <  xxx.tar     # 生成的镜像跟之前打包的镜像名称一样
7. 将镜像生成容器
docker  run  -it  --name  容器名称  镜像名称  /bin.bash

# 给与开通sshd的sudo权限的方式生成容器
sudo docker run -d --name=wang --privileged=true --networ=khost -p 20000:22  9a5d1fa93203 /usr/sbin/init
sudo docker exec -it wang /bin/bash
posted @ 2020-04-22 14:25  wanglai  阅读(22906)  评论(0编辑  收藏  举报