1. 程式人生 > >docker使用之save和load命令以及一些其它命令

docker使用之save和load命令以及一些其它命令

在上一篇部落格中介紹了編寫簡單的dockerfile的方法,可以通過編寫dockerfile,然後利用dockerfile建立容器的方法,將一個工程建立為docker容器,然後通過docker run命令執行已建立的容器。

那麼,如果本地或當前虛擬機器上已存在一個docker容器,我想要把它導到伺服器上,可以怎麼做呢?答案是save和load容器。

1、save
首先檢視要儲存的映象的id
docker images
看到有資料形容images相當於類,containers相當於例項,可以這麼理解。
找到要儲存的映象後用save儲存成一個tar檔案

# docker save -o [定義一個tar檔案的檔名] [要儲存的映象的id]
docker save -o savetest.tar dd886f784c2c
# 生成的tar檔案儲存路徑為當前路徑下

2、load
儲存之後可以在任何地方載入映象了
將生成的tar檔案上傳到需要載入映象的伺服器後

docker load -i imagesname.tar
然後可以再次通過docker images命令檢視載入的映象

3、run
載入成功後,可以直接通過docker run命令執行映象

docker run --name [指定一個用於與其它容器區分的name] -it -v [/home/dir:/home/dir] [用docker images可以查到的dockername] 

ppps:-v是對映作用,將伺服器本地的地址對映到容器內,否則的話在容器裡是無法訪問容器外的檔案的


ps:如果在一臺伺服器上載入了一個映象,併成功運行了一個該映象的容器,如果為了操作互不影響,我想要另啟一個這個映象的容器的話,相當於我要再另外建一個該類的物件,而不需要重新定義(載入)這個類,所以只需要直接執行docker run就可以,和之前的區分在於自己指定一個可區分的容器的名稱。

4、一些其它命令
首先與docker相關的命令都可以通過docker --help命令查詢,命令都解釋地很清楚
下面幾個常用的:

docker ps -a                       #列出所有在執行的容器
docker images                   #列出所有映象
 #注意上面兩個是不同的
 # 一個容器啟動了之後,如果不去stop它它是一直在開啟的,那麼如果終端關閉或者另開一個終端想要進入這個容器該用什麼命令呢?
 docker exec -it [用ps可以查到的容器號] [/bin/bash]              #後面的引數來自於ps查詢容器時的command列
 docker rm                            # 刪除容器(用ps可以查到id號的)
 docker rmi                          # 刪除映象(用images可以查到id號的)
 

5、容器內檔案或資料夾與宿主機內的傳遞
docker cp命令
都是在宿主機(即容器外)執行
a. 容器複製到宿主機

docker cp 容器名:容器內檔案路徑 容器外要貼上的路徑

b. 宿主機複製到容器
docker cp 要拷貝的檔案路徑 容器名:要拷貝到容器裡面改對應的路徑