自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Docker 從入門到精通(一)基本操作

開源 云計算
Docker 是一個能夠把開發(fā)應(yīng)用程序自動部署到容器的開源引擎。

 一,為什么要用 Docker?

Docker 是一個能夠把開發(fā)應(yīng)用程序自動部署到容器的開源引擎。它由Docker公司的團隊編寫,基于Apache 2.0開源協(xié)議授權(quán)。它提供了一個簡單、輕量的建模方式,使開發(fā)生命周期更高效快速,鼓勵了面向服務(wù)的架構(gòu)設(shè)計。Docker 項目的目標是實現(xiàn)輕量級的操作系統(tǒng)虛擬化解決方案。 Docker 的基礎(chǔ)是 Linux 容器(LXC)等技術(shù)。在 LXC 的基礎(chǔ)上 Docker 進行了進一步的封裝,讓用戶不需要去關(guān)心容器的管理,使得操作更為簡便。用戶操作 Docker 的容器就像操作一個快速輕量級的虛擬機一樣簡單。

Docker 的特點:

1,更快速的交付和部署

2,更高效的虛擬化

3,更輕松的遷移和擴展

4,更簡單的管理

容器技術(shù)與傳統(tǒng)虛擬機性能對比:

Docker與虛擬機建構(gòu)對比

Docker 容器本質(zhì)上是宿主機上的一個進程。Docker 通過 namespace 實現(xiàn)了資源隔離,通過 cgroups 實現(xiàn)了資源的限制,通過寫時復(fù)制機制(copy-on-write)實現(xiàn)了高效的文件操作。

Docker有五個命名空間:

進程、網(wǎng)絡(luò)、掛載、宿主和共享內(nèi)存

為了隔離有問題的應(yīng)用,Docker運用Namespace將進程隔離,為進程或進程組創(chuàng)建已隔離的運行空間,為進程提供不同的命名空間視圖。這樣,每一個隔離出來的進程組,對外就表現(xiàn)為一個container(容器)。需要注意的是,Docker讓用戶誤以為自己占據(jù)了全部資源,但這并不是”虛擬機”。

Docker 中的三個概念:鏡像,容器,倉庫

1、鏡像(image):Docker 鏡像就是一個只讀的模板,鏡像可以用來創(chuàng)建 Docker 容器。Docker 提供了一個很簡單的機制來創(chuàng)建鏡像或者更新現(xiàn)有的鏡像,用戶甚至可以直接從其他人那里下載一個已經(jīng)做好的鏡像來直接使用。

鏡像是一種文件結(jié)構(gòu)。Dockerfile中的每條命令都會在文件系統(tǒng)中創(chuàng)建一個新的層次結(jié)構(gòu),文件系統(tǒng)在這些層次上構(gòu)建起來,鏡像就構(gòu)建于這些聯(lián)合的文件系統(tǒng)之上。Docker官方網(wǎng)站專門有一個頁面來存儲所有可用的鏡像,網(wǎng)址是:index.docker.io。

2、容器( Container):容器是從鏡像創(chuàng)建的運行實例。它可以被啟動、開始、停止、刪除。每個容器都是相互隔離的、保證安全的平臺??梢园讶萜骺醋鍪且粋€簡易版的 Linux 環(huán)境,Docker 利用容器來運行應(yīng)用。鏡像是只讀的,容器在啟動的時候創(chuàng)建一層可寫層作為最上層。

3、倉庫:倉庫是集中存放鏡像文件的場所,倉庫注冊服務(wù)器(Registry)上往往存放著多個倉庫,每個倉庫中又包含了多個鏡像,每個鏡像有不同的標簽(tag)。目前,***的公開倉庫是 Docker Hub,存放了數(shù)量龐大的鏡像供用戶下載。

Docker倉庫用來保存我們的images,當我們創(chuàng)建了自己的image之后我們就可以使用push命令將它上傳到公有或者私有倉庫,這樣下次要在另外一臺機器上使用這個image時候,只需要從倉庫上pull下來就可以了。Docker 倉庫的概念跟 Git 類似,注冊服務(wù)器可以理解為 GitHub 這樣的托管服務(wù)。

二,安裝 Docker

前提條件:Docker運行對內(nèi)核要求比較高,因此一般建議直接在Ubuntu這樣的平臺運行。但作為一個容器標準,Docker也是支持其他如CentOS, Mac OS X, Windows等平臺。目前Docker支持以下版本CentOS:CentOS 7(64位)CentOS 6.5(64位)及以后在運行CentOS 6.5及以后版本時,需要內(nèi)核版本>=2.6.32-431,因為這些內(nèi)核包含了運行Docker的一些特定修改。

Docker默認使用AUFS作為存儲驅(qū)動,但是AUFS并沒有被包括在Linux的主線內(nèi)核中。CentOS中可以使用Device Mapper作為存儲驅(qū)動,這是在2.6.9內(nèi)核版本引入的新功能。我們需要先確認是否啟用該功能:

CentOS 7安裝

Docker RPM包已經(jīng)包含在CentOS-Extra倉庫中,所以我們可以直接使用Yum安裝:

  1. # yum install docker 

CentOS 6.6安裝

需要注意的是,CentOS6.6中,已經(jīng)有一個同名docker的可執(zhí)行系統(tǒng)程序包。所以Docker RPM包命名為docker-io,我們先卸掉docker。

  1. # yum -y remove docker 

第三步 Install Docker-IO

  1. # yum -y install docker-io 

這樣完成了Docker的安裝。

  1. # /etc/init.d/docker start #啟動docker  
  2. # docker info #查看 docker 基本信息 

三, Docker 基本操作

  1. # docker search centos #搜索容器 
  2.   
  3. # docker pull centos #下載容器 
  4.   
  5. # docker images #查看當前存在的鏡像 
  6.   
  7. # docker run centos /bin/echo 'hello world' #運行一條命令后直接退出 
  8.   
  9. # docker run --name mydocker -it centos /bin/bash #進入docker容器 
  10. -t 選項讓Docker分配一個偽終端(pseudo-tty)并綁定到容器的標準輸入上, 
  11. -i 則讓容器的標準輸入保持打開。 
  12. name 使用一個自定義的名字 
  13. # docker run -d --name mynginx nginx #啟動nginx鏡像,沒有會自動pull 
  14.   
  15. # docker stop bfd094233f96 #停止一個容器,根據(jù)容器 id 進行刪除 
  16.   
  17. # docker rm bfd094233f96 #刪除一個容器 
  18.   
  19. # docker attach d20f3dc6cd92 #進入一個正在運行的容器 
  20. 此命令不太好用,建議使用以下命令進入容器: 
  21.  
  22. [root@localhost docker]# docker inspect --format "{{.State.Pid}}" mynginx #獲取容器pid 
  23. 19769 
  24. [root@localhost docker]# nsenter --target 19769 --mount --uts --ipc --net --pid #進入容器(推薦方法) 
  25.   
  26. # docker run -d -p 91:80 --name mynginx2 nginx # -p 指定端口映射,將80映射為host的91 

存儲鏡像:

  1. # docker save -o ubuntu_14.04.tar ubuntu:14.04 

載入鏡像:

  1. # docker load < ubuntu_14.04.tar 或者使用  
  2. # cat ubuntu.tar | docker import - test/ubuntu:v1.0 

移除本地鏡像:

  1. # docker rmi training/sinatra 

清理所有未打過標簽的本地鏡像:

  1. # docker rmi $(docker images -q -f "dangling=true"
  2. 其中 -q 和 -f 是 quiet,–filter 的縮寫, 完整的命令其實可以寫著下面這樣,是不是更容易理解一點?  
  3. # docker rmi $(docker images --quiet --filter "dangling=true") 
  4. 注: 容器是否會長久運行,是和docker run指定的命令有關(guān),和 -d 參數(shù)無關(guān)。 

要獲取容器的輸出信息,可以通過 docker logs 命令。

  1. # docker logs [container ID or NAMES] 

刪除容器:

  1. # docker rm 默認并不會刪除運行中的容器 

有關(guān)容器和鏡像的底層信息:

  1. # docker inspect container/image 

可以查看:

容器實例的IP地址端口綁定列表

特定端口映射的搜索

收集配置的詳細信息

從容器內(nèi)復(fù)制文件到指定的路徑上:

  1. docker cp container:path hostpath 

使用Dockerfile來構(gòu)建鏡像:

  1. docker build [options] PATH | URL  
  2. –rm=true表示構(gòu)建成功后,移除所有中間容器  
  3. no-cache=false表示在構(gòu)建過程中不使用緩存 
責(zé)任編輯:武曉燕 來源: linuxprobe
相關(guān)推薦

2022-06-10 08:17:52

HashMap鏈表紅黑樹

2010-02-06 15:31:18

ibmdwAndroid

2009-07-22 14:55:16

ibmdwAndroid

2016-12-08 22:39:40

Android

2017-05-09 08:48:44

機器學(xué)習(xí)

2012-02-29 00:49:06

Linux學(xué)習(xí)

2025-02-24 10:07:10

2010-11-08 10:20:18

2024-02-26 08:52:20

Python傳遞函數(shù)參數(shù)參數(shù)傳遞類型

2022-09-02 15:11:18

開發(fā)工具

2011-10-26 20:47:36

ssh 安全

2024-06-07 08:51:50

OpenPyXLPythonExcel文件

2025-03-21 14:31:14

NumPyPython數(shù)組

2009-03-19 13:36:53

SSH安全通道遠程

2023-10-13 08:23:05

2009-07-03 18:49:00

網(wǎng)吧綜合布線

2024-01-11 09:35:12

單元測試Python編程軟件開發(fā)

2023-05-09 08:34:51

PythonWith語句

2018-06-12 11:01:55

HBase誤刪數(shù)據(jù)
點贊
收藏

51CTO技術(shù)棧公眾號