ubuntu下的Docker命令使用

Docker和VM區分開來是不一樣的.
在我的理解裏VM虛擬機相當於一個操作系統的拷貝,擁有操作系統所擁有的所有資源,因此很佔用內存.
而Docker可以理解爲便攜式的VM,只包含我們需要的程序,而沒有其他額外的內容.
Docker主要有三部分:

1. image鏡像
2. 容器
3. 倉庫

鏡像和容器之間關係:

image只包含可讀的內容,不可以直接運行,而容器則是運行單位.
兩者關係可以對應成這樣:

鏡像=類
容器=類的實例l

鏡像是隻讀的,而容器是在鏡像層上的可寫層
容器運行時需要本地存在對應的鏡像,如果不存在則會從鏡像倉庫中下載(默認是 Docker Hub 公共註冊服務器中的倉庫)

倉庫:

倉庫分爲共有倉庫和私有倉庫,就是字面意思:倉庫是存放了很多鏡像的大倉庫.

我們可以通過push將鏡像上傳到共有倉庫或者私有倉庫,然後在另一臺機子上通過pull從倉庫中下載到本地.

簡單的命令

在ubuntu安裝docker服務:

$ sudo apt-get update
$ sudo apt-get install -y docker.io

查看docker版本:

docker version

啓動docker服務:

sudo service docker start

如何下載鏡像:

sudo docker pull ubuntu:12.04

相當於:
$ sudo docker pull registry.hub.docker.com/ubuntu:12.04 命令,
即從註冊服務器 registry.hub.docker.com 中的 ubuntu 倉庫來下載標記爲 12.04 的鏡像。
查看本地已有的鏡像:

sudo docker images

創建一個容器並運行:(需要指定調用的鏡像)

sudo docker run -t -i ubuntu:12.04 /bin/bash

注意:同一個鏡像可以有多個容器
顯示:
root@818a537ecc49:/#
表示已經啓動 ubuntu:12.04這個容器的 bash應用
ubuntu代表倉庫
12.04代表鏡像版本

如果不指定具體的標記,即上面的12.04,則默認使用 latest 標記信息

退出容器:

exit

搜索鏡像:

sudo docker search httpd

如何更新鏡像?

首先需要創建一個容器:

jjc@jjczn:~$ sudo docker run -t -i ubuntu:12.04 /bin/bash
root@2bf155e4554a:/# 

這個時候容器id爲2bf155e4554a
經過一些更改以後調用exit命令退出
這是我們經過修改的容器
然後採用命令提交鏡像副本

sudo docker commit -m "update" -a="codingcoge" 2bf155e4554a jjc:newubuntu
[sudo] password for jjc: 
sha256:f4e8825292550752d91bdc3cc64d107efddcd17960d86ce17864d1f3d1b35337

m指定描述信息
a指定作者
2bf155e4554a代表容器id
jjc:newubuntu是更改後鏡像的倉庫和標識
成功後返回鏡像的id屬性

再查看一下鏡像:

jjc@jjczn:~$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
jjc                 newubuntu           f4e882529255        6 minutes ago       104MB
hello-world         latest              fce289e99eb9        4 months ago        1.84kB
ubuntu              12.04               5b117edd0b76        2 years ago         104MB

原先的鏡像也在,修改後的鏡像也在.


如何把鏡像保存到本地呢?

docker save -o codingcoge.tar jjc:newubuntu

本地載入鏡像:

sudo docker load --input codingcoge.tar
或者
sudo docker load < codingcoge.tar

移除鏡像:

docker rmi jjc:newubuntu

如何創建一個新的鏡像?

利用 Dockerfile 創建鏡像
這個就沒看了直接跳過了


如何推送鏡像到倉庫?

申請Docker hub 帳號 ,並創建倉庫
我也沒看直接跳過了


未完待續

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章