Linux運維:Docker安裝

docker學習筆記

LXC操做系統層虛擬化

LXC,其名稱來自Linux軟件容器(Linux Containers)的縮寫,一種操做系統層虛擬化(Operating system–level virtualization)技術,爲Linux內核容器功能的一個用戶空間接口。它將應用軟件系統打包成一個軟件容器(Container),內含應用軟件自己的代碼,以及所須要的操做系統核心和庫。透過統一的名字空間和共享API來分配不一樣軟件容器的可用硬件資源,創造出應用程序的獨立沙箱運行環境,使得Linux用戶能夠容易的建立和管理系統或應用容器。linux

在Linux內核中,提供了cgroups功能,來達成資源的區隔化。它同時也提供了名稱空間區隔化的功能,使應用程序看到的操做系統環境被區隔成獨立區間,包括進程樹,網絡,用戶id,以及掛載的文件系統。可是cgroups並不必定須要啓動任何虛擬機。docker

LXC利用cgroups與名稱空間的功能,提供應用軟件一個獨立的操做系統環境。LXC不須要Hypervisor這個軟件層,軟件容器(Container)自己極爲輕量化,提高了建立虛擬機的速度。軟件Docker就是用來管理LXC的環境。centos

Docker 使用 Google 公司推出的 Go 語言 進行開發實現,基於 Linux 內核的cgroup,namespace,以及 AUFS 類的 Union FS 等技術,對進程進行封裝隔離,屬於操做系統層面的虛擬化技術。因爲隔離的進程獨立於宿主和其它的隔離的進程,所以也稱其爲容器。最初實現是基於 LXC,從 0.7 版本之後開始去除 LXC,轉而使用自行開發的libcontainer,從 1.11 開始,則進一步演進爲使用 runC 和 containerd。緩存

Docker的生命週期

Docker中有三個基本概念:鏡像,容器和倉庫。理解了這個三個概念就大體瞭解了Docker的生命週期。
Docker架構:
圖片描述安全

  • Client:docker是一個c/s架構的程序,不管是客戶端仍是服務端,都是由一個docker程序提供的。docker子程序中,dockerdaemon是守護進程,能夠監聽在套接字之上。這個套接字只容許client容許在本機上。
  • Docker_HOST:運行容器的主機,也就是宿主機,其中有Docker鏡像和Docker容器。
  • Registry:鏡像倉庫,存儲鏡像的倉庫。Docker默認的鏡像倉庫是https://hub.docker.com/

Docker安裝

系統環境
Docker CE支持64 位CentOS7,而且要求內核版本不低於3.10。CentOS7知足最低的內核要求,但因爲內核版本較低,部分功能沒法使用,而且部分功能可能不太穩定。網絡

[root@game-test1 ~]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 
[root@game-test1 ~]# cat /proc/version 
Linux version 3.10.0-693.11.6.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.520150623 (Red Hat 4.8.5-16) (GCC) ) #1 SMP Thu Jan 4 01:06:37 UTC 2018

卸載舊版本
舊版本的Docker稱爲docker或者docker-engine,使用下面命令卸載舊版本:架構

yum remove docker docker-common docker-selinux docker-engine

使用yum安裝
因爲網絡緣由,建議使用國內源下載,執行下面命令添加yum源:socket

yum-config-manager --add-repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo

安裝最新版本的Docker CE:學習

yum-config-manager --enable docker-ce-edge

更新軟件源緩存,並安裝docker-ce測試

yum makecache fast
yum install -y docker-ce

啓動Docker CE

systemctl enable docker #設置開機自啓
systemctl start docker

創建Docker用戶組
默認狀況下,docker命令會使用Unix socket與Docker引擎進行通信。而只有root用戶和docker組的用戶才能夠訪問Docker引擎的Unix socket。出於安全考慮,通常Linux系統上不會直接使用root用戶、所以,將須要使用docker的用戶加入docker用戶組。
創建用戶組

groupadd docker

建立docker用戶,加入到docker組

useradd -g docker docker -s /sbin/nologin

測試docker是否安裝正確
若出現以上輸出信息說明docker安裝成功,至此docker安裝完畢。

[root@jackyun ~]# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
9db2ca6ccae0: Pull complete 
...(省略部分)
相關文章
相關標籤/搜索