UBuntu16.04下安裝Docker(親測)

yangbinchen發表於2018-12-06

一、環境

因工作需要,要使用Docker,參考網上(BigManing 和阿里雲易立的部落格Docker學習路線圖 (持續更新中)) 的安裝方法並記錄下安裝過程。 

安裝環境:Ubuntu 16.04

1、檢視系統資訊

1)Ubuntu檢視版本資訊

輸入lsb_release -a命令檢視版本資訊

lsb_release -a

當前系統的資訊如下:

 

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.5 LTS
Release:    16.04  // 官方16.04LTS系統版本
Codename:   xenial // 16.04版本系統對應的代號 
2)檢視當前系統相關資訊

命令為:

uname [引數]

示例如下:

$ uname -a  //顯示所有資訊
Linux BigManing 4.4.0-83-generic #106-Ubuntu SMP Mon Jun 26 17:54:43 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

$ uname -s  //顯示核心名稱
Linux

$ uname -n  //顯示網路節點上的主機名
BigManing

$ uname -r  //顯示核心發行號
4.4.0-83-generic

$ uname -v   //顯示核心版本號
#106-Ubuntu SMP Mon Jun 26 17:54:43 UTC 2017

$ uname -m   //顯示機器硬體名稱 顯示i686說明你安裝了32位作業系統   顯示 x86_64說明你安裝了64位作業系統
x86_64

$ uname -p   //顯示處理器型別
x86_64

$ uname -i   //顯示硬體平臺
x86_64

$ uname -o   //作業系統
GNU/Linux

 

二、安裝Docker(下面方式任選一)

1、使用官方安裝指令碼自動安裝

命令:

sudo curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
安裝完成後:
+ sudo -E sh -c `apt-get install -y -qq --no-install-recommends docker-ce >/dev/null`
+ sudo -E sh -c `docker version`
Client:
 Version: 18.09.0
 API version: 1.39
 Go version: go1.10.4
 Git commit: 4d60db4
 Built: Wed Nov 7 00:48:57 2018
 OS/Arch: linux/amd64
 Experimental: false

Server: Docker Engine - Community
 Engine:
  Version: 18.09.0
  API version: 1.39 (minimum version 1.12)
  Go version: go1.10.4
  Git commit: 4d60db4
  Built: Wed Nov 7 00:16:44 2018
  OS/Arch: linux/amd64
  Experimental: false
If you would like to use Docker as a non-root user, you should now consider
adding your user to the "docker" group with something like:

  sudo usermod -aG docker cyb

Remember that you will have to log out and back in for this to take effect!

WARNING: Adding a user to the "docker" group will grant the ability to run
         containers which can be used to obtain root privileges on the
         docker host.
         Refer to https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface
         for more information.

增加cyb到DOCKER的使用者組

sudo usermod -aG docker cyb

安裝校驗

sudo docker version

結果如下:

Client:
 Version: 18.09.0
 API version: 1.39
 Go version: go1.10.4
 Git commit: 4d60db4
 Built: Wed Nov 7 00:48:57 2018
 OS/Arch: linux/amd64
 Experimental: false

Server: Docker Engine - Community
 Engine:
  Version: 18.09.0
  API version: 1.39 (minimum version 1.12)
  Go version: go1.10.4
  Git commit: 4d60db4
  Built: Wed Nov 7 00:16:44 2018
  OS/Arch: linux/amd64
  Experimental: false

2、手動安裝幫助(未測試)

Ubuntu 14.04 16.04 (使用apt-get進行安裝)

# step 1: 安裝必要的一些系統工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安裝GPG證書
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 寫入軟體源資訊
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新並安裝 Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce

# 安裝指定版本的Docker-CE:
# Step 1: 查詢Docker-CE的版本:
# apt-cache madison docker-ce
# docker-ce | 17.03.1~ce-0~ubuntu-xenial | http://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
# docker-ce | 17.03.0~ce-0~ubuntu-xenial | http://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
# Step 2: 安裝指定版本的Docker-CE: (VERSION 例如上面的 17.03.1~ce-0~ubuntu-xenial)
# sudo apt-get -y install docker-ce=[VERSION]

三、驗證docker是否正確被安裝

執行hello world映象(直接執行即可 自動從伺服器上拉取demo映象)

sudo docker run hello-world

執行時發現沒有,自動從伺服器上拉取demo映象

Unable to find image `hello-world:latest` locally
latest: Pulling from library/hello-world
d1725b59e92d: Pull complete 
Digest: sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788
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/get-started/

四、更新/解除安裝Docker

更新

sudo apt upgrade

解除安裝

sudo apt-get purge docker-ce 
sudo rm -rf /var/lib/docker

五、新增到使用者組(可選項)

新增到使用者組(so easy)

sudo groupadd docker 
sudo usermod -aG docker $USER

登出系統重新進入系統,就可以直接使用docker開頭了。(注意:一定要登出後再進系統

sudo service docker restart

1 如果不新增到使用者組會發生什麼呢? 

如果直接執行:

docker run hello-world

你會發現下面的錯誤:

 

docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/create: dial unix /var/run/docker.sock: connect: permission denied.
See `docker run --help`

這是因為:

docker守護程式繫結到Unix套接字而不是TCP埠。預設情況下,Unix套接字由使用者root擁有,其他使用者只能使用sudo訪問它。 docker守護程式始終以root使用者身份執行。 如果您不想在使用docker命令時使用sudo,請建立名為docker的Unix組,並將使用者新增到該組。當docker守護程式啟動時,它會使Docker組的Unix套接字的所有權讀/寫。

 

參考資料:

對於機器差異化不能安裝的同學,請閱讀官方文件。

 https://docs.docker.com/engine/installation/linux/ubuntu/#recommended-extra-packages-for-trusty-1404

其他關於舊版本Docker解除安裝以及測試開發版本Docker安裝的幫助,可以參考官方文件的說明進行安裝


相關文章