docker保存鏡像到本地和加載本地鏡像文件

1、首先查看已有的鏡像文件:

指令:docker images?

2、將鏡像打包成本地文件

指令:兩種方式

(1)docker save [鏡像id] > [文件名.tar]

(2)docker save -o [文件名.tar] [鏡像id]

3、在另一臺主機加載本地文件到鏡像

指令:docker load? < 文件名.tar

4、鏡像重命名

執(zhí)行完上述語句后,通過docker images查看本地鏡像,會看到新加載的鏡像名字和標簽都是none,利用該鏡像的id對名字和標簽重新命名即可:

指令:docker tag 鏡像id 鏡像名:標簽? ? ? ?(標簽可以是容器的版本號)

5、創(chuàng)建容器

指令:

docker run -it --name [指定一個用于與其它容器區(qū)分的name] -it

如果需要容器內(nèi)部訪問外部文件可以追加參數(shù) -v [/home/dir:/home/dir]

運行時設置容器映射端口

docker run -i -t -d -p 9000:80 容器name

5 其它一些命令

docker ps -a? 列出所有在運行的容器

docker images 列出所有鏡像

docker exec -it 容器id /bin/bash? 進入容器

docker rm? id? 刪除容器? ps查到的

docker rmi id? 刪除鏡像? images 查到的

啟動/關閉容器? ?docker start/stop 容器id

退出容器 ctrl D

容器內(nèi)文件或文件夾和宿主機之前相互傳遞??

指令:docker cp?

都是容器外執(zhí)行

例:docker cp 容器id:/var/..? /home/..宿主機目錄

6、要保存對一個docker容器的改動怎么辦?答案:commit

上面用的save和load用于把已經(jīng)存在的鏡像在服務器之間搬運,而對一個容器做了改動之后,可以通過commit命令把容器生成成鏡像,然后就可以通過save和load搬運了

docker commit [容器id] [起一個鏡像名]

之后就可以通過docker images查看生成的鏡像了

7、docker run 之后生成的container不是root權限

如果執(zhí)行docker run 是root用戶執(zhí)行的,生成的container不是root的話,在docker run時加參數(shù):-u root

8、docker tag

如果我通過docker save存出來一個image,load到另一臺機器的話,可能load出來的image的repository和tag都是none

所以用docker tag給它標記

docker tag imageID 名字:tag

9、關于docker exec進入容器

一般是,docker exec -it 容器名或id bash

-it很重要,如果不加的話其實執(zhí)行完這條命令就退出容器了

bash其實就是進入容器使用的命令,就相當于dockerfile里最后那個CMD命令,就是說CMD命令是可以在docker run或exec的時候替換最后的bash的。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容