1. 程式人生 > >Docker容器與映象的關係及安裝

Docker容器與映象的關係及安裝

一、什麼是Docker映象?

映象是構建 Docker 的基石。使用者基於映象來執行自己的容器。映象也是 Docker 生命周 期中的“構建”部分。也可以將映象當作容器的“原始碼”。映象體積很小,非常“便攜”,易於分享、儲存和更新。

二、什麼是Docker容器?

容器是基於映象啟動起來的,容器中可以執行一個或多個程序。我們可以認為,映象是Docker生命週期中的構建或者打包階段,而容器則是啟動或者執行階段。 容器基於映象啟動,一旦容器啟動完成後,我們就可以登入到容器中安裝自己需要的軟體或者服務。

Docker 借鑑了標準集裝箱的概念。標準集裝箱將貨物運往世界各地,Docker 將這個模 型運用到自己的設計中,唯一不同的是:集裝箱運輸貨物,而 Docker 運輸軟體。和集裝箱一樣,Docker 在執行上述操作時,並不關心容器中到底裝了什麼,它不管是 web 伺服器,還是資料庫,或者是應用程式伺服器什麼的。所有的容器都按照相同的方式將 內容“裝載”進去。

三、Docker安裝於操作

 1.在Ubuntu中安裝Docker
sudo apt-key add gpg☞顯示OK
sudo dpkg -i docker-ce_17.03.2~ce-0~ubuntu-xenial_amd64.deb
1.1檢查Docker CE是否安裝正確
sudo docker run hello-world

1.2為了避免每次命令都輸入sudo,可以設定使用者許可權,需要重新進入終端,不行的話需要重啟ubuntu
sudo usermod -a -G docker $USER


2.啟動與停止
安裝完成Docker後,預設已經啟動了docker服務,如需手動控制docker服務的啟停,可執行如下命令
# 啟動docker☞sudo service docker start
# 停止docker☞sudo service docker stop
# 重啟docker☞sudo service docker restart


3.docker映象操作
列出映象
sudo docker image ls
REPOSITORY:映象所在的倉庫名稱
TAG:映象標籤
IMAGEID:映象ID
CREATED:映象的建立日期(不是獲取該映象的日期)
SIZE:映象大小
拉取映象☞sudo docker image pull library/映象名
由於 Docker 官方提供的 image 檔案,都放在library組裡面,所以它的是預設組,可以省略
刪除映象
sudo docker image rm ☞映象名或映象id


4.docker容器操作
4.1建立容器
sudo docker run [option] 映象名 [向啟動容器中傳入的命令]
常用可選引數說明:
-i 表示以“互動模式”執行容器
-t 表示容器啟動後會進入其命令列。加入這兩個引數後,容器建立就能登入進去。即 分配一個偽終端。
--name 為建立的容器命名
-v 表示目錄對映關係(前者是宿主機目錄,後者是對映到宿主機上的目錄,即 宿主機目錄:容器中目錄),可以使 用多個-v 做多個目錄或檔案對映。注意:最好做目錄對映,在宿主機上做修改,然後 共享到容器上。
-d 在run後面加上-d引數,則會建立一個守護式容器在後臺執行(這樣建立容器後不 會自動登入容器,如果只加-i -t 兩個引數,建立後就會自動進去容器)。
-p 表示埠對映,前者是宿主機埠,後者是容器內的對映埠。可以使用多個-p 做多個埠對映
-e 為容器設定環境變數
--network=host 表示將主機的網路環境對映到容器中,容器的網路與主機相同
建立一個互動式容器,並命名為myubuntu(若當前沒有你指定的映象,會自動為你拉取)
☞sudo docker run -it --name=myubuntu ubuntu /bin/bash
建立一個守護式容器:如果對於一個需要長期執行的容器來說,我們可以建立一個守護式容器。在容器內部exit退出時,容器也不會停止。
☞sudo docker run -dit --name=myubuntu2 ubuntu
4.2檢視容器
列出本機正在執行的容器☞sudo docker container ls

 列出本機所有容器,包括已經終止執行的☞sudo docker container ls --all
4.3進入已執行的容器
sudo docker exec -it 容器名或容器id /bin/bash

4.4停止與啟動容器
停止一個已經在執行的容器☞sudo docker container stop 容器名或容器id

啟動一個已經停止的容器☞sudo docker container start 容器名或容器id

kill掉一個已經在執行的容器☞sudo docker container kill 容器名或容器id
4.5刪除容器
sudo docker container rm 容器名或容器id


5.將容器儲存為映象
sudo docker commit 容器名 映象名


6.映象備份與遷移
sudo docker save -o 儲存的檔名 映象名
在拿到映象檔案後,可以通過load方法,將映象載入到本地
sudo docker load -i ./ubuntu.tar