完整的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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM