容器的常用操作
docker run -i -t /bin/bash
使用image建立container並進入互動模式, login shell是/bin/bash
例項:
$ docker run -it ubuntu /bin/bash
root@946be96acd5f:/#
root@946be96acd5f:/# exit
exit
exit後容器將不在執行
docker start -i
啟動一個container並進入互動模式
例項:
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
648944eeef8a ubuntu "/bin/bash" 8 seconds ago Exited (0) 6 seconds ago suspicious_feynman
root@ubun:~# docker start -i 648944eeef8a
root@648944eeef8a:/#
docker exec
通過宿主機在正在執行的容器上執行命令。
通過宿主機在容器上建立檔案
$ docker exec 87cb69be18bb touch /root/abc.txt
可通過exec命令從正在執行的容器上申請一個終端,執行shell
$ docker exec -it 87cb69be18bb /bin/bash
docker ps
預設顯示正在執行中的container
docker ps –a
顯示所有的container,包括未執行的 例項:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
946be96acd5f ubuntu "/bin/bash" About a minute ago Exited (0) About a minute ago thirsty_mclean
docker ps –l
顯示最後一次建立的container,包括未執行的
docker start/stop/restart
開啟/停止/重啟container
docker容器和映象遷移
docker的備份方式有export和save兩種。
docker export當前狀態的容器,通過docker import進行恢復;
docker save針對的是映象,通過docker load進行恢復。
save
1.找出要儲存的映象名稱.
$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
memcached v0.1 291272444a64 7 weeks ago 212 MB
2.備份映象
$ docker save memcached:v0.1 >memcached_bak.tar
3.恢復映象
將映象scp到目標伺服器,恢復映象
$ docker load < memcached_bak.tar
4.檢視映象
$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
memcached v0.1 291272444a64 7 weeks ago 212 MB
export
1.找出要儲存的容器ID或名稱
$ docker ps|grep memcached
2.備份容器
$ docker export memcached > memcached_bak.tar
3.恢復成映象
$ docker import memcached_bak.tar memcached
4.檢視映象
$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
memcached latest 51af4462e58b About a minute ago 250.5 MB
兩者區別
匯出後再匯入(export-import)的映象會丟失所有的歷史和層資訊,而儲存後再載入(save-load)的映象沒有丟失歷史和層 (layer)。這意味著使用匯出後再匯入的方式,你將無法回滾到之前的層(layer),同時,使用儲存後再載入的方式持久化整個映象,就可以做到層回滾.
未完待續.....