Docker(一):Docker入門

簡介

Docker是一個開源的容器引擎,能夠幫助咱們更快的交付應用。Docker可將應用程序和基礎設施層隔離,而且能將基礎設施看成程序進行管理。可更快的打包、測試以及部署應用程序,並可減小從編寫到部署代碼的週期linux

Docker架構

  •  Docker Daemon咱們稱之爲Docker守護進程,也就是Server端,Server端能夠部署在遠程,也能夠部署在本地,由於Server端與客戶端(Docker Client)是經過Rest API進行通訊。
  • Docker CLI 實現容器和鏡像的管理,爲用戶提供統一的操做界面,這個 客戶端提供一個只讀的鏡像,而後經過鏡像能夠建立一個或者多個容器(container),這些容器能夠只是一個RFS(Root File System),也能夠是一個包含了用戶應用的RFS。容器在docker Client中只是一個進程,兩個進程是互不可見的。
  • Image: 一個只讀的鏡像模板。能夠本身建立一個鏡像也能夠從網站上下載鏡像供本身使用。鏡像包含了一個RFS.一個鏡像能夠建立不少容器。
  • Container:由docker client經過鏡像建立的實例,用戶在容器中運行應用,一旦建立後就能夠看作是一個簡單的RFS,每一個應用運行在隔離的容器中,享用獨自的權限,用戶,網絡。確保安全與互相干擾;
  • repository:倉庫,不重要,大概就是一個鏡像庫,最大的是docker hub,相似於google 的aosp,也能夠本地搭。

Docker與虛擬機

Docker屬於OS級別的虛擬化,kernel經過建立多個鏡像來隔離不一樣的app進程,因爲kernel是是共享,並且自己linux image也不大,性能損耗幾乎能夠不計,並且內存佔用也不大,大大節約了設備成本。nginx

經常使用命令

一、拉取鏡像,Docker鏡像保存在/var/lib/docker目錄下docker

docker pull image_nameubuntu

二、刪除鏡像centos

docker rmi docker.io/tomcat:7.0.77-jre7 或者 docker rmi b39c68b7af30tomcat

三、查看當前有哪些容器正在運行安全

docker psbash

四、查看全部容器服務器

docker ps -a網絡

五、啓動、中止、重啓容器命令

docker start container_name/container_id

docker stop container_name/container_id

docker restart container_name/container_id

六、後臺啓動一個容器後,若是想進入到這個容器,可使用attach命令

docker attach container_name/container_id

七、刪除容器的命令:

docker rm container_name/container_id

八、查看當前系統Docker信息

docker info

九、執行docker pull centos會將Centos這個倉庫下面的全部鏡像下載到本地repository

docker pull centos:latest

十、docker run

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

  • -a stdin: 指定標準輸入輸出內容類型,可選 STDIN/STDOUT/STDERR 三項;

  • -d: 後臺運行容器,並返回容器ID;

  • -i: 以交互模式運行容器,一般與 -t 同時使用;

  • -p: 端口映射,格式爲:主機(宿主)端口:容器端口

  • -t: 爲容器從新分配一個僞輸入終端,一般與 -i 同時使用;

  • --name="nginx-lb": 爲容器指定一個名稱;

  • --dns 8.8.8.8: 指定容器使用的DNS服務器,默認和宿主一致;

  • --dns-search example.com: 指定容器DNS搜索域名,默認和宿主一致;

  • -h "mars": 指定容器的hostname;

  • -e username="ritchie": 設置環境變量;

  • --env-file=[]: 從指定文件讀入環境變量;

  • --cpuset="0-2" or --cpuset="0,1,2": 綁定容器到指定CPU運行;

  • -m :設置容器使用內存最大值;

  • --net="bridge": 指定容器的網絡鏈接類型,支持 bridge/host/none/container:<name|id> 四種類型;

  • --link=[]: 添加連接到另外一個容器;

  • --expose=[]: 開放一個端口或一組端口;

使用鏡像 nginx:latest,之後臺模式啓動一個容器,將容器的 80 端口映射到主機的 80 端口,主機的目錄 /data 映射到容器的 /data。

docker run -p 80:80 -v /data:/data -d nginx:latest

綁定容器的 8080 端口,並將其映射到本地主機 127.0.0.1 的 80 端口上。

$ docker run -p 127.0.0.1:80:8080/tcp ubuntu bash
相關文章
相關標籤/搜索