Docker入門 一: 概念與配置
Docker入門 一: 概念與配置
Docker的入門教程的內容:
- 配置你的Docker 環境(本章)
- 建立一個映象(Image)並在一個容器(container)裡執行它
- 擴容你的app到多個容器
- 新增一個後端伺服器來構建多層服務
- 部署你的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倉庫資訊
- 安裝需要的包.
yum-utils
提供yum-config-manager
工具,同時device-mapper-persistent-data
和lvm2
是devicemapper
需要的資料驅動.
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
- 通過下面的命令配置 stable的倉庫.只能使用stable的倉庫,即使你想要安裝 edge 或者 test 版本
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
安裝Docker CE
- 安裝
$ sudo yum install docker-ce
也可以安裝指定版本的ce,比如 docker-ce-18.03.0.ce
$ sudo yum install docker-ce-<VERSION STRING>
- 啟動
$ sudo systemctl start docker
- 驗證測試
$ sudo docker run hello-world
這個命令會下載一個測試映象並在一個容器裡執行它,並列印一些資訊後退出。
開機自啟動docker
$ sudo systemctl enable docker
關閉的話就寫成 disable
其他
使用docker的時候,基本都是在sudo
命令下,如果你嫌這樣太麻煩,可以把使用者新增到docker
使用者組