ubuntu16.04下docker安裝和簡單使用

前提條件

操作系統

docker-ce支持的ubuntu版本:

  • Bionic 18.04 (LTS)

  • Xenial 16.04 (LTS)

  • Trusty 14.04 (LTS)

卸載舊版本docker[可選]

$ sudo apt-get remove docker docker-engine docker.io --purge

支持的存儲驅動程序

對於ubuntu16.04及以上版本,其linux內核中包含了對於OverlayFS的支持。Docker CE默認使用overlay2存儲引擎,如果想要使用aufs,可參考aufs

安裝 Docker CE

方法1: 使用repository進行安裝

Step1. 更新源,安裝相應的依賴包

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

Step2 安裝Docker鏡像

方式1> 安裝國內阿里Docker CE鏡像[國內推薦]

curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

方式2> 安裝docker的官方 GPG key[國內不推薦,需要FQ]:

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

可能存在的問題:
如果等了很長時間也下載不了,說明被牆了,需要通過代理下載,例如使用本地的shawsocks代理

$ export https_proxy=socks5://127.0.0.1:1080$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -OK

安裝完成後,最好使用指紋9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88對key進行驗證

$ sudo apt-key fingerprint 0EBFCD88
pub   4096R/0EBFCD88 2017-02-22
      Key fingerprint = 9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid                  Docker Release (CE deb) <[email protected]>sub   4096R/F273FCD8 2017-02-22

Step3. 安裝穩定版的repository

方式1> 阿里repository[國內推薦]

sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

方式2> 官方repository[國內不推薦]

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

4. 安裝Docker CE

方式1) 安裝最新版Docker CE
$ sudo apt-get update$ sudo apt-get install docker-ce

如果使用國外官方鏡像,可能存在以下問題:
update更新時間過長,一直卡住不動,形如:

$ sudo apt-get updateHit:1 http://mirrors.aliyun.com/ubuntu xenial InReleaseHit:2 http://mirrors.aliyun.com/ubuntu xenial-updates InReleaseHit:3 http://mirrors.aliyun.com/ubuntu xenial-backports InReleaseHit:4 http://mirrors.aliyun.com/ubuntu xenial-security InRelease0% [Working]

或是

  Could not resolve host: download.docker.com
Reading package lists... DoneW: Failed to fetch https://download.docker.com/linux/ubuntu/dists/xenial/InRelease  Could not resolve host: download.docker.com

或是

Err:5 https://download.docker.com/linux/ubuntu xenial InRelease
  Operation timed out after 0 milliseconds with 0 out of 0 bytes received
Reading package lists... Done
W: Failed to fetch https://download.docker.com/linux/ubuntu/dists/xenial/InRelease  Operation timed out after 0 milliseconds with 0 out of 0 bytes received
方式2) 安裝指定版本Docker CE
# 獲取可用版本$ apt-cache madison docker-ce# 安裝指定版本$ sudo apt-get install docker-ce=<VERSION>例如: 
$ sudo apt-get install docker-ce=17.06.2~ce-0~ubuntu

5. 驗證Docker CE是否成功安裝

方式1) 以root身份運行hello-world

$ sudo docker run hello-world

方式2) 以普通用戶身份運行hello-world

# 0. 首先要確保docker服務已經啓動$ systemctl status docker# 1. 使用root身份創建用戶並設置密碼,給用戶添加及sudo權限[如果有普通用戶可跳過,這裏是爲了演示需要]# 創建新用戶bob# useradd -m -d /home/bob -s /bin/bash bob# passwd bob# tail -n 1 /etc/passwdbob:x:1000:1000::/home/bob:/bin/bash# 該bob添加sudo權限# usermod -aG sudo bob# 下面使用bob登錄# su - bob# 2. 創建名爲docker的組$ sudo groupadd docker# 3. 將當前用戶加入到docker組中$ sudo usermod -aG docker $USER# 4. 註銷,如果遠程登錄先斷開連接在重新連接,使得usermod修改生效,這一步非常重要# 5. 驗證$ docker run hello-world

usermod修改後不會立即生效

# 查看當前用戶所屬組$ groups bob sudo# 查看指定用戶所屬組$ groups bobbob : bob sudo# 查看當前用戶信息$ iduid=1000(bob) gid=1000(bob) groups=1000(bob),27(sudo)$ sudo usermod -aG docker bob$ groupsbob sudo$ iduid=1000(bob) gid=1000(bob) groups=1000(bob),27(sudo)# 可以發現usermod修改後並未立即生效如果是遠程登錄,可以先斷開連接再重新連接,或是使用su進行切換命令$ su - bobPassword: 
$ groupsbob sudo docker$ iduid=1000(bob) gid=1000(bob) groups=1000(bob),27(sudo),999(docker)# 重新登錄發現修改生效

方法2: deb包安裝

deb包下載地址

方法3: 使用腳本一鍵安裝

方式1> 使用阿里Docker鏡像源安裝腳本[國內推薦]

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

方式2> 使用官方安裝腳本

$ curl -fsSL https://get.docker.com -o get-docker.sh$ sudo sh get-docker.sh

開機啓動

# 設置開機啓動$ sudo systemctl enable docker# 關閉開機啓動$ sudo systemctl disable docker

Docker CE 徹底卸載

# Step1: 關閉服務$ sudo service docker stop# Step2: 查看安裝的軟件包$ dpkg -l | grep -i docker# Step3:  卸載$ sudo apt-get purge -y docker-engine docker docker.io docker-ce  $ sudo apt-get autoremove -y --purge docker-engine docker docker.io docker-ce  # Step4: 刪除相關數據和配置文件$ sudo ls /var/lib/docker/aufs  containers  image  network  plugins  swarm  tmp  trust  volumes$ sudo rm -rf /var/lib/docker $ sudo rm /etc/apparmor.d/docker$ sudo groupdel docker$ sudo rm -rf /var/run/docker /var/run/docker.sock# Step5: 刪除interface docker0$ sudo ifconfigdocker0   Link encap:Ethernet  HWaddr 02:42:03:99:8a:e8  
$ sudo ip link del docker0

----------------------------------

啓動docker        systemctl start docker

守護進程重啓   sudo systemctl daemon-reload

重啓docker服務   systemctl restart  docker

重啓docker服務  sudo service docker restart

關閉docker   service docker stop   

關閉docker  systemctl stop docker

----------------------------

停止所有的container,這樣才能夠刪除其中的images:

docker stop $(docker ps -a -q)


如果想要刪除所有container的話再加一個指令:

docker rm $(docker ps -a -q)


查看當前有些什麼images

docker images


刪除images,通過image的id來指定刪除誰

docker rmi <image id>


想要刪除untagged images,也就是那些id爲的image的話可以用

docker rmi $(docker images | grep "^<none>" | awk "{print $3}")


要刪除全部image的話

docker rmi $(docker images -q)


強制刪除全部image的話

docker rmi -f $(docker images -q)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章