1. 程式人生 > >Docker入門 一: 概念與配置

Docker入門 一: 概念與配置

Docker入門 一: 概念與配置

Docker的入門教程的內容:

  1. 配置你的Docker 環境(本章)
  2. 建立一個映象(Image)並在一個容器(container)裡執行它
  3. 擴容你的app到多個容器
  4. 新增一個後端伺服器來構建多層服務
  5. 部署你的app到生產環境

Docker的概念

Docker是一個為開發者和管理員通過容器來開發、部署、執行app的平臺. Linux中通過容器來部署應用的用法稱作 containerization 。容器的概念不是新的,但是他們的簡單地部署應用的方式是新的。

Containerization 越來越流行,因為容器是:
0. 靈活的:即使是最複雜的應用都可以被整合化(Containerized)
1. 輕量級: 容器使用和共享核心
2. 可持續交付的:你可以在執行中(on-the-fly)部署修改和升級
3. 靈活的:你可以本地構建,部署到雲端,並且在任何地方執行
4. 可擴充套件的:你可以增加和自動分配容器拷貝
5. 多級的:你可以建立垂直多級服務

映象和容器

一個容器通過執行一個映象來啟動。 一個映象是一個可執行的包,它包含了所有執行這個應用的程式碼、執行時、庫檔案、環境變數和配置檔案等。

一個容器是一個一個映象的執行時例項——映象變成執行在記憶體中執行(一個有狀態的映象和使用者程序).你可以看到執行中的容器,通過 docker ps 這個命令

容器和虛擬機器

一個容器執行起來就像原生的應用,與其他容器一起共享主機核心。執行不容的程序,不比任何別的應用消耗更多的記憶體,它非常輕量。

與它不同的是,虛擬機器(virtual machine) 通過虛擬化技術執行一個全套的作業系統.也就是說,虛擬機器提供了一包含很多應用不需要的資源的環境。

這裡寫圖片描述

準備Docker 環境

安裝穩定的Docker Community Edition (CE)版本 或者 Enterprise Edition (EE)版本,EE版本是不開源的商業收費版本。

需要一個Centos 7及以上的Linux系統.之前的歸檔版本不在提供支援
centos-extras 的倉庫必須是開啟的.這個倉庫預設是開啟的,如果被關閉了,你需要開其他。

推薦安裝overlay2 儲存驅動

刪除舊版本

舊版的Docker 叫做docker 或者 docker-engine。如果已經安裝過了,刪除他們

$ sudo yum remove docker \
docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine

如果yum 提示這些未安裝,那麼就是沒有安裝過docker

/var/lib/docker 目錄內包含了 映象、容器、分割槽、網路等受保護資訊。Docer CE的包名叫做 docker-ce, EE的包名叫做 docker-ee

通過倉庫來安裝

如果你之前沒安裝過docker,那麼在安裝之前,需要配置一下yum的倉庫配置。把docker的倉庫資訊新增到yum中。

配置docker倉庫資訊

  1. 安裝需要的包. yum-utils 提供 yum-config-manager 工具,同時 device-mapper-persistent-datalvm2devicemapper需要的資料驅動.
$ sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
  1. 通過下面的命令配置 stable的倉庫.只能使用stable的倉庫,即使你想要安裝 edge 或者 test 版本
$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

安裝Docker CE

  1. 安裝
$ sudo yum install docker-ce

也可以安裝指定版本的ce,比如 docker-ce-18.03.0.ce

$ sudo yum install docker-ce-<VERSION STRING>
  1. 啟動
$ sudo systemctl start docker
  1. 驗證測試
$ sudo docker run hello-world

這個命令會下載一個測試映象並在一個容器裡執行它,並列印一些資訊後退出。

開機自啟動docker

$ sudo systemctl enable docker

關閉的話就寫成 disable

其他

使用docker的時候,基本都是在sudo命令下,如果你嫌這樣太麻煩,可以把使用者新增到docker 使用者組