【Docker快速入門】在Ubuntu下安裝Docker

weixin_33782386發表於2018-07-05

前言

Docker分為兩個版本:CE版為社群免費版,EE為企業版,部分功能收費。
我們接下來要安裝的是Docker CE版。

一、安裝環境

當前安裝環境為 LTS 版本為 Ubuntu 18.04 64位。

1、AUFS 核心驅動屬於Ubuntu可選核心模組的一部分,作為推薦的 Docker 儲存層驅動,一般建議安裝可選核心模組包以使用 AUFS。
如果系統沒有安裝可選核心模組的話,可以執行下面的命令來安裝可選核心模組包:

$ sudo apt-get update

$ sudo apt-get install \
    linux-image-extra-$(uname -r) \
    linux-image-extra-virtual

Ubuntu 16.04以上的 Docker CE 預設使用 overlay2 儲存層驅動,無需手動配置。

2、我們使用 APT 安裝方式,由於 apt 源使用 HTTPS 以確保軟體下載過程中不被篡改。因此,我們首先需要新增使用 HTTPS 傳輸的軟體包以及 CA 證書。

$ sudo apt-get update

$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common

鑑於國內網路問題,強烈建議使用國內源,官方源可在註釋中檢視。
3、為了確認所下載軟體包的合法性,需要新增軟體源的 GPG 金鑰。

$ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
OK #返回OK即可

# 官方源
# $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

4、然後,我們需要向 source.list 中新增 Docker 軟體源:

$ sudo add-apt-repository \
    "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
    $(lsb_release -cs) \
    stable"


# 官方源
# $ sudo add-apt-repository \
#    "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
#    $(lsb_release -cs) \
#    stable"

二、開始安裝 Docker CE

更新 apt 軟體包快取,並安裝 docker-ce:

$ sudo apt-get update
$ sudo apt-get install docker-ce

三、啟動 Docker CE

$ sudo systemctl enable docker
$ sudo systemctl start docker

Ubuntu 14.04 請使用以下命令啟動:

$ sudo service docker start

四、建立 docker 使用者組

預設情況下,docker 命令會使用 Unix socket 與 Docker 引擎通訊。而只有 root 使用者和 docker 組的使用者才可以訪問 Docker 引擎的 Unix socket。出於安全考慮,一般 Linux 系統上不會直接使用 root 使用者。因此,更好地做法是將需要使用 docker 的使用者加入 docker 使用者組。

1、檢視當前所有使用者組:

$ cat /etc/group
#...其它略
docker:x:999:

可以看到預設已經建立了 docker 組。

2、如果沒有,可手工建立 docker 組:

$ sudo groupadd docker

3、將當前使用者加入 docker 組:

$ sudo usermod -aG docker $USER

$USER即為當前使用者名稱。
4、退出當前終端並重新登入,進行如下測試。

五、測試 Docker 是否安裝正確

1、檢視安裝的版本資訊

$ docker version
Client:
 Version:      18.03.1-ce
 API version:  1.37
 Go version:   go1.9.5
 Git commit:   9ee9f40
 Built:        Wed Jun 20 21:43:51 2018
 OS/Arch:      linux/amd64
 Experimental: false
 Orchestrator: swarm

Server:
 Engine:
  Version:      18.03.1-ce
  API version:  1.37 (minimum version 1.12)
  Go version:   go1.9.5
  Git commit:   9ee9f40
  Built:        Wed Jun 20 21:42:00 2018
  OS/Arch:      linux/amd64
  Experimental: false

2、執行官方的hello-world

$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
9bb5a5d4561a: Pull complete 
Digest: sha256:3e1764d0f546ceac4565547df2ac4907fe46f007ea229fd7ef2718514bcec35d
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/engine/userguide/

simon@localhoster:~$ docker run hello-world

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/engine/userguide/

六、設定國內映象(可選)

此步驟為可選操作。
1、新建映象配置檔案daemon.json。

$ sudo su
# vim /etc/docker/daemon.json
# 複製如下內容到檔案:
{
  "registry-mirrors": [
    "https://registry.docker-cn.com"
  ]
}
# exit

2、重新啟動服務。

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

3、驗證映象地址是否生效。
在提示資訊中可以看到registry.docker-cn.com即可。

$ docker info
Registry Mirrors:
 https://registry.docker-cn.com/

至此,我們便可以在Ubuntu下愉快地玩耍了~!

參考:
https://yeasy.gitbooks.io/docker_practice/install/ubuntu.html
https://yeasy.gitbooks.io/docker_practice/install/mirror.html

相關文章