Docker 介紹和安裝(一)
Build,Ship,and Run Any App, AnyWhere
Docker 是一種核心級別的虛擬化技術。實現,一次建立和或配置,在任何地方、任何時間執行的目的。
優勢:
- 更快速的交付和部署;
- 更高效的資源利用;
- 更輕鬆的遷移和擴充套件;
- 更簡單的更新管理
同虛擬機器相比:
- Docker 啟動更快
- 對系統資源需求很少
- 借鑑 Git 的設計理念來方便使用者的獲取、分發和更新應用映象,儲存複用,增量更新
- 支援 Dockerfile 支援靈活的自動化建立和部署機制,以提高效率和標準化流程
特性 | Docker | 虛擬機器 |
---|---|---|
啟動速度 | 秒級 | 分鐘級 |
效能 | 接近原生 | 較弱 |
記憶體代價 | 很小 | 較多 |
硬碟使用 | 一般MB | 一般Gb |
執行密度 | 單機支援上千個 | 一般十幾個 |
隔離性 | 安全隔離 | 完全隔離 |
遷移性 | 優秀 | 一般 |
虛擬化技術的分類: 硬體層面虛擬化(很少)和軟體層面的虛擬化。軟體層面的虛擬化可以繼續細分為:1、完全虛擬化;2、硬體輔助虛擬化;3、部分虛擬化;4、超虛擬化;5、作業系統級虛擬化。
Docker 屬於作業系統級虛擬化,內容通過建立多個虛擬化作業系統例項(核心和庫)來隔離不同的程序。
Docker 中的三個核心概念
映象(Image)、容器(Container)和倉庫(Repository)
映象
映象和容器的關係可以理解為Java中類和物件的關係。Docker 映象類似於虛擬機器中的映象(ISO檔案),是建立 Docker 的基礎。
容器
容器是從映象中建立的應用執行例項。它可以啟動、開始、停止、刪除,各個容器之間互相隔離,不可見。容器可以看出傳統虛擬機器中安裝好的作業系統。
倉庫 Repository
Docker 倉庫類似於程式碼倉庫,是 Docker 集中存放映象檔案的場所。最大的公開倉庫是 Docker Hub (https://hub.docker.com/), 和 GitHub 類似,Docker Hub 中註冊需要自帶梯子。
Docker 的獲取安裝
Docker 分為社群版和企業版,默認個人使用社群穩定版本。Docker 產品 介紹。
在 Centos7 中安裝 Docker CE
筆者習慣在Centos7 中實地實驗,其它版本安裝可以參考官網(https://docs.docker.com/install/)。
1. 解除安裝之前的版本
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
2. 通過 yum 進行安裝
手動安裝參考(https://docs.docker.com/install/linux/docker-ce/centos/#install-from-a-package)
設定 yum 源
1、 先安裝相關的依賴包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2、 新增穩定的 Docker 社群版本倉庫到 Linux 映象源中
# 官方映象源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 換成阿里的 Docker 映象源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
提示出錯:Could not fetch/save url https://download.docker.com/linux/centos/docker-ce.repo to file /etc/yum.repos.d/docker-ce.repo: [Errno 12] Timeout on https://download.docker.com/linux/centos/docker-ce.repo: (28, ‘Operation timed out after 30001 milliseconds with 0 out of 0 bytes received’)
主要是因為被牆的原因
3、 執行安裝命令
sudo yum -y install docker-ce
Docker 官網上說明了如何安裝指定版本的 Docker
4、 啟動 Docker
systemctl start docker
5、 驗證 Docker 是否正確執行,啟動 Hello World 映象。
sudo docker run hello-world
執行命令後會打印出 Hello world
其它命令
## List Docker CLI commands
docker
docker container --help
## Display Docker version and info
docker --version
docker version
docker info
## Execute Docker image
docker run hello-world
## List Docker images
docker image ls
## List Docker containers (running, all, all in quiet mode)
docker container ls
docker container ls --all
docker container ls -aq
docker ps
檢視執行的容器dockerd -D -H tcp://127.0.0.1:2376
通過 Dockerd 命令啟動 Docker 服務,開啟 Debug 模式,並監聽本地的 2376 埠
對於 Centos7 來說,配置檔案路徑為 /etc/systemd/system/docker.service.d/docker.conf