什麼是鏡像,鏡像是怎麼產生的,通過這節的學習的Docker container機制要比虛擬機的機制要小巧,原因何在?本節課程的內容是連接12節的,所以肯定跟12節的github有關係:https://github.com/limingios/docker.git
####什麼是Image
- 文件和meta data的集合(root filesystem)
- 對於linux系統來說分爲:,就是內核空間(kernel space)和用戶空間(user space),內核空間linux kernel,就理解成root filesystem
- 用戶空間就是在內核上層建立的其實就是:ubuntu,centos,redhat,
Debian。
-
分層的,並且每一層都是可以添加改變的,成爲一個新的Image。例如:先建立個apache的Image,結果在apache的Image上邊我有建立的一個mysql的Image。
-
不同的Image之前可以共享分層。例如:apache的Image可以跟mysql的Image之間進行通信。
- Image本身是隻讀的
####開始Image的表演
首先啓動vagrant,在上一節創建的虛機
-
啓動
vagrant reload
- 進入
vagrant ssh
sudo service docker restart
sudo docker version
-
掛個國內的加速器吧
sudo curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://b81aace9.m.daocloud.io sudo systemctl restart docker
- 查看Image
sudo docker image ls
- 獲取Image
- bulid from Dockerfile
ls cd labs cd docker-centos-vim/ ls pwd more Dockerfile sudo service docker restart sudo docker build -t liming/vim:latest .
- bulid from Dockerfile
這裏注意裏面一共用了兩步,這個跟咱們編寫的Dockfile有關係,因爲Dockfile也就兩行。
- Pull from Registry(從倉庫中下載,這個概念有點像git的方式,其實docker就是模仿了git的方式,我們可以從https://hub.docker.com/ pull,也可以把的Image push 到https://hub.docker.com/ 中)
sudo docker pull ubuntu:14.04
sudo docker image ls
- liming/vim 是在centos之上的一個Image
- 因爲Dockerfile中需要from centos 所以也下了centos Image
- ubuntu 剛剛pull下來的
如果自己安裝一個centos 和ubuntu 在虛擬機上也需要幾個G吧,這裏通過docker 才幾百兆,是不是很省空間。
注意:從:https://hub.docker.com/ 中不僅僅可以下載官方的Image還可以下載私人的Image 他們的區別是:官方的名字後面沒有/,私人的:人名/Image的名稱
#4 通過版本號
sudo docker pull bitnami/wordpress:4
#默認的latest
sudo docker pull bitnami/wordpress
- 進入容器內部
#創建文件
touch test.txt
#執行yum安裝
yum install vim
- 從容器內部退出,容器也變成了exited
docker的命令分佈
- Management Commands (管理命令)
- Commands (配合管理的運行命令)
命令合集
個人主頁:idig8.com
PS:認識了Image,下次如何創建自己的Image。實踐中,歡迎大家持續關注。