1. 程式人生 > >Docker的安裝,配置,更新和解除安裝

Docker的安裝,配置,更新和解除安裝

在Linux中開啟Docker引擎

我們可以在Linux中安裝Docker並執行Hello world應用程式。通過下面這些操作,我們將會學到更多有關於Docker的基礎特徵。我們將會學到如何:

  • 安裝Docker引擎
  • 在一個容器中執行軟體映象
  • 在Docker Hub中瀏覽一個映象
  • 建立你的映象,並且在容器中執行它
  • 建立一個Docker Hub賬戶和一個映象庫
  • 建立你自己的映象
  • 將你的映象放到Docker Hub中讓其他人使用

該開始教程是用於減少使用者碰到問題的可能性,為了能夠測試成功,一定要遵循下面說明的步驟來進行操作。該過程將會消耗大約45分鐘。

確保你瞭解。。。

該開始教程使用命令列來進行相應的操作。你不必特別熟悉命令列,但是你應該瞭解如何開啟shell或終端,並且在那個環境中執行基本的命令。它幫助我們瞭解如何去導航一個目錄樹,操作檔案,列舉執行的程序等等。

安裝Docker(在Ubuntu中)

Ubuntu

Docker支援下面的這些Ubuntu作業系統:

  • Ubuntu Xenial 16.04 (LTS)
  • Ubuntu Wily 15.10
  • Ubuntu Trusty 14.04 (LTS)
  • Ubuntu Precise 12.04 (LTS)

該頁指導你使用Docker管理髮行包和安裝機制來安裝Docker。使用這些包能夠確保你獲得最新的Docker發行版。如果你希望使用Ubuntu管理包進行安裝,可以查閱一個UBuntu資料。

注意:Ubuntu 14.10和15.04存在Docker的APT庫,但是並不官方支援。

要求

不管你的Ubuntu版本是什麼,Docker要求64位系統安裝。除此之外,你的核心最低版本要求為3.10。最近的3.10的較小版本或最新的維護版本都是可以接受的。

版本低於3.10的核心缺少一些執行Docker容器的特徵。這些較老版本的核心被瞭解到,存在一些bug,這些bug將會導致資料丟失;並且在特定條件下,會導致頻繁的恐慌。

你可以開啟一個終端,使用uname -r來檢查你的當前核心版本。

bobo@bobo:~$ uname -r
3.19.0-15-generic
注意:如果你之前使用`APT`安裝了Docker,一定要確定更新你的`APT`原始碼到最新的Docker庫。

更新你的apt源

Docker的APT庫包含Docker 1.7.1和更高版本。為了設定APT從最新的庫中使用包:

  1. 使用sudoroot許可權,作為一個使用者登陸你的機器
  2. 開啟一個終端視窗
  3. 更新包資訊,確定APT以https方法工作,並且CA證書已被安裝。
 $ sudo apt-get update
 $ sudo apt-get install apt-transport-https ca-certificates
  1. 新增新的GPG
$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
  1. 使用你喜歡的編輯器開啟/etc/apt/sources.list.d/docker.list檔案。如果檔案不存在,則建立他。
  2. 移除所有存在的條目。
  3. 為你的Ubuntu作業系統新增一個條目。
    可能的條目為:

    • 在Ubuntu Precise 12.04 (LTS)中

      deb https://apt.dockerproject.org/repo ubuntu-precise main
    • 在Ubuntu Trusty 14.04 (LTS)中

      deb https://apt.dockerproject.org/repo ubuntu-trusty main
    • 在Ubuntu Wily 15.10中

      deb https://apt.dockerproject.org/repo ubuntu-wily main
    • 在Ubuntu Xenial 16.04(LTS)

      deb https://apt.dockerproject.org/repo ubuntu-xenial main

    注意:Docker並不為所有的架構提供包。你可以在 https://master.dockerproject.org 中找到構建的二進位制。為了在多架構系統上安裝docker,向條目中新增一個[arch=...]元素。細節參考Debian Multiarch wiki

  4. 儲存和關閉/etc/apt/sources.list.d/docker.list檔案。

  5. 更新APT包索引。
$ sudo apt-get update
  1. 如果舊的repo存在則清除
$ sudo apt-get purge lxc-docker
  1. 驗證APT是否是從正確的庫中拉取下來的。
$ apt-cache policy docker-engine

從現在開始,當你再執行apt-get upgrade的時候,APT會從最新的庫中拉取出來。

Ubuntu版本的條件

  • Ubuntu Xenial 16.04 (LTS)
  • Ubuntu Wily 15.10
  • Ubuntu Trusty 14.04 (LTS)

對於Ubuntu Trusty,Wily和Xenial來說,我們推薦您安裝linux-image-extra核心包。linux-image-extra包允許你使用aufs儲存驅動。

為了給您的核心版本安裝linux-image-extra包:

  1. 在你的Ubuntu系統中開啟一個終端。
  2. 更新你的包管理器。
$ sudo apt-get update
  1. 安裝推薦的包
$ sudo apt-get install linux-image-extra-$(uname -r)
  1. 繼續安裝Docker

如果你正在Ubuntu 14.04或12.04中安裝,apparmor是需要的。你可以使用apt-get install apparmor來安裝它。

Ubuntu Precise 12.04 (LTS)

對於Ubuntu Precise來說,Docker需要3.13的核心版本。如果你的核心版本必3.13低,你必須更新它。檢視這個表格來看對於你的環境需要哪些包。

這裡寫圖片描述

為了更新你的核心和安裝額外的包,做下列操作:

  1. 開啟一個終端。
  2. 更新包管理器
$ sudo apt-get update
  1. 必須的和可選的包都要安裝
$ sudo apt-get install linux-image-generic-lts-trusty

依賴於你的環境,你可能需要安裝更多,正如在上述表格中描述的。

  1. 重啟你的宿主機。
  2. 在系統重啟之後,繼續安裝Docker。

安裝

確定你已經安裝了你Ubuntu版本的必要條件。然後,使用下面的命令安裝Docker:

  1. 使用sudo特權作為一個使用者登陸你的Ubuntu。
  2. 更新你的APT包索引。
$ sudo apt-get update
  1. 安裝Docker。
$ sudo apt-get install docker-engine
  1. 開啟docker
$ sudo service docker start
  1. 驗證docker被正確安裝
$ sudo docker run hello-world

該命令會向容器中下載一個測試映象並且執行它。當容器執行成功,就會列印一個資訊,然後退出。


[email protected]:~$ sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world

03f4658f8b78: Pull complete 
a3ed95caeb02: Pull complete 
Digest: sha256:8be990ef2aeb16dbcb9271ddfe2610fa6658d13f6dfb8bc72074cc1ca36966a7
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.
 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 Hub account:
 https://hub.docker.com

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

可選配置

該小節包含可選的過程,用於配置你的Ubuntu更好的執行Docker。

  • 建立docker組
  • 適應記憶體和交換
  • 使能UFW轉發
  • 配置一個DNS伺服器來用
  • 配置Docker開機自啟

建立一個Docker組

docker域是和Unix的一個套接字繫結的,而不是一個TCP埠。預設情況下,Unix套接字是屬於使用者root的,並且其他使用者能夠使用sudo訪問他。處於這個原因,docker域會一直以root使用者執行。

為了避免在使用docker命令的時候必須要使用sudo,我們需要建立一個Unix組稱作docker,並且向該組中新增使用者。當docker域啟動的時候,Unix套接字的讀寫所有權由docker組擁有。

警告:`docker`組和`root`使用者是平等的。

為了建立docker組和新增你的使用者:

  1. 使用sudo許可權登陸Ubuntu。
  2. 建立docker
$ sudo groupadd docker
  1. docker組中新增你的使用者
$ sudo usermod -aG docker ubuntu
  1. 登出再登入
    這個確保你的使用者以正確的許可權執行。
  2. 不使用sudo執行docker來驗證您的工作。
$ docker run hello-world

如果失敗資訊和下面類似:

Cannot connect to the Docker daemon. Is 'docker daemon' running on this host?

檢查DOCKER_HOST環境變數是否被設定,如果為設定,則重新設定。

調整記憶體和交換分割槽

當用戶執行Docker的時候,當執行一個映象的時候,他們可能會看到下面這些資訊:

WARNING: Your kernel does not support cgroup swap limit. WARNING: Your
kernel does not support swap limit capabilities. Limitation discarded.

為了阻止這些資訊,就需要使能你係統上的記憶體和交換分割槽(memory and swap accounting)。使能記憶體和交換分割槽能夠引起記憶體開銷和降解效能,即使Docker並沒有在使用。記憶體開銷大約是所有可用記憶體的1%。效能大約降解10%。

為了在使用GNU GRUB的系統上使能記憶體和交換分割槽,遵循下面的步驟:

  1. 作為一個使用者使用sudo特權來登陸Ubuntu。
  2. 編輯/etc/default/grub檔案。
  3. 像下面這樣設定GRUB_CMDLINE_LINUX值。
GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"
  1. 儲存並關閉檔案
  2. 更新GRUB
$ sudo update-grub
  1. 重啟系統

使能UFW轉發

如果在你執行Docker,在同樣的宿主機上使用UFW(Uncomplicated Firewall)的時候,你將需要做額外的配置。Docker使用一個橋來管理容器網路。預設情況下,UFW丟棄所有的轉發訊息。結果是,當UFW被使能了,Docker要想去執行,你必須設定UFW的轉發策略。

UFW的預設設定規則是拒絕所有的進來的訊息。如果你想要另一個主機到達你的容器,你需要在Docker埠上允許進入的連線。如果LTS被使能,則Docker的預設埠為2376,如果沒有,則埠為2375。如果TLS沒有被使能,通訊是未被加密的。預設情況下,Docker是在TLS未被使能的情況下執行的。

為了配置UFW和在Docker埠上允許進入的連線:

  1. 作為使用者以sudo 登陸。
  2. 驗證UFW是否被安裝和被使能。
$ sudo ufw status
  1. 開啟/etc/default/ufw並編輯。
$ sudo nano /etc/default/ufw
  1. 設定DEFAULT_FORWARD_POLICY策略為:
DEFAULT_FORWARD_POLICY="ACCEPT"
  1. 儲存並關閉檔案
  2. 重新載入UFW來使用新的設定。
$ sudo ufw reload
  1. 在Docker埠上允許進入的連線。
$ sudo ufw allow 2375/tcp

配置一個DNS伺服器讓Docker使用

在桌面上執行Ubuntu系統或Ubuntu衍生系統,在/etc/resolv.conf檔案中,典型的使用127.0.0.1作為預設的nameserver。網路管理器也會設定dnsmasq來使用真實的DNS伺服器,並且在/etc/resolv.conf中設定nameserver 127.0.0.1

當使用這些配置在桌面機器上開啟容器,Docker使用者將會看到這個警告:

WARNING: Local (127.0.0.1) DNS resolver found in resolv.conf and containers
can't use it. Using default external servers : [8.8.8.8 8.8.4.4]

該警告的出現是因為Docker容器不能使用本地的DNS域名伺服器。Docker預設使用一個外部的域名伺服器。

為了避免這個警告,你可以指定一個DNS伺服器讓Docker容器來使用。或者是,你可以在網路管理器中禁用dnsmasq。不過,禁用dnsmasq可能會導致DNS在一些網路中變慢。

下面的指令描述瞭如何配置執行在Ubuntu14.10或較低版本的上的Docker域。Ubuntu 15.04和更高版本使用systemd作為啟動和服務管理器。有關與systemd的配置可以參考這篇文章,control and configure Docker with systemd

為了指定一個DNS伺服器讓Docker使用:

  1. 作為一個使用者身份以sudo方式登陸系統。
  2. 開啟/etc/default/docker檔案編輯。
  3. 新增一個設定。
DOCKER_OPTS="--dns 8.8.8.8"

使用本地DNS伺服器,例如 192.168.1.1替換8.8.8.8。你也可以指定多個DNS伺服器。將他們之間用空格分離。例如:

--dns 8.8.8.8 --dns 192.168.1.1
警告:如果你正在使用連線多個網路的電腦做這個事情,確定要選擇一個公共DNS伺服器。
  1. 儲存並關閉檔案
  2. 重啟Docker域。
$ sudo restart docker

或者是,對之前的操作作為一個可選的選項,就是在網路管理器中禁用dnsmasq

  1. 開啟/etc/NetworkManager/NetworkManager.conf檔案。
  2. 註釋掉dns=dnsmasq這一行。
  3. 儲存並且關閉檔案。
  4. 重啟網路管理器和Docker.
$ sudo restart network-manager
$ sudo restart docker

配置Docker開機自啟動

Ubuntu 15.04及以上系統使用systemd作為它的啟動和服務管理器,Ubuntu 14.10及其低版本使用upstart

對於15.04及其以上版本來說,為了配置docker域開機自啟,執行:

$ sudo systemctl enable docker

對於14.10及其較低版本,上述的安裝方法自動配置upstart開使docker域開機的時候自動啟動。

更新Docker

安裝最新版本的Docker使用apt-get:

$ sudo apt-get upgrade docker-engine

解除安裝

解除安裝Docker包:

$ sudo apt-get purge docker-engine

解除安裝Docker包及其以來不再需要使用下面的命令:

$ sudo apt-get autoremove --purge docker-engine

上面的命令不會移除映象,容器,卷或者是使用者建立的配置檔案。如果你想刪除所有的映象,容器和卷,執行下面的命令:

$ rm -rf /var/lib/docker

你必須手動刪除使用者建立的配置檔案。

相關推薦

Docker安裝配置更新解除安裝

在Linux中開啟Docker引擎 我們可以在Linux中安裝Docker並執行Hello world應用程式。通過下面這些操作,我們將會學到更多有關於Docker的基礎特徵。我們將會學到如何: 安裝Docker引擎 在一個容器中執行軟體映象 在Doc

Ubuntu16.04與ARM的NFS配置、掛載解除安裝

ip分配: 閘道器    192.168.137.1               電腦     192.168.137.4               Ubuntu 192.168.137.2               開發板  192.168.137.3 一:

ubuntu14.04安裝搜狗拼音輸入法解除安裝以及異常問題解決

一.前言 去搜狗拼音官網:http://pinyin.sogou.com/linux/?r=pinyin 下載安裝包:sogoupinyin_2.0.0.0068_amd64.deb 雙擊通過 軟體管理器安裝 終端命令列: im-config

自定義android studio的配置檔案目錄後無法正常安裝解除安裝外掛的解決辦法。

Android Studio 的快取檔案預設安裝的在C:\Users\YourName\ .xxx 快取一些資料,有限的C盤空間很容易捉禁見肘。所以就需要修改配置檔案了,修改配置檔案的方法百度一下數量數不勝數,我這裡就不寫了。修改路徑後有一個奇葩問題:無法正常安裝和解除安裝外

Linux 磁碟分割槽檔案系統建立、掛載解除安裝

建立分割槽 (fdisk): 第一步先在Linux的虛擬機器上新增一塊硬碟,新增完成後需要重啟虛擬機器才能夠檢測識別到新硬碟。 重啟系統後可以使用 fdisk -l 命令檢視當前所有磁碟分割槽情況,sdb為我們剛剛建立的新磁碟,可以與上面的sda磁碟對比,發現新磁碟sdb還沒有分割槽。接下來就是為

eclipse的下載安裝解除安裝

 1.eclipse的安裝 1.1.下載eclipse:步驟如下。         1.2.安裝eclipse:把下載下來的壓縮包直接解壓到你的安裝目錄即可(eclipse是一款開源,綠色的軟體)進入到bin裡面把eclipse.exe傳送

nodejs備忘總結(一) -- nodeexpress安裝配置新建簡單專案(附安裝配置過程中遇到問題的解決方法)

安裝node 本文以安裝node_v8.9.0為例(win10環境),下載node-v8.9.0-x64.msi外掛 下載後,安裝,安裝目錄預設為C:\Program Files\nodejs 配置環境變數,系統變數->path,新增“C:\Program Files\nodejs\”

CentOS軟體的安裝更新解除安裝命令

Linux常見的安裝為tar,zip,gz,rpm,deb,bin等。我們可以簡單的分為三類. 第一:打包或壓縮檔案tar,zip,gz等,一般解壓後即可,或者解壓後執行sh檔案; 第二:對應的有管理工具的deb,rpm等,通常的這類安裝檔案可以通過第三方的命令列

Redis 安裝配置服務器端客戶端的命令

--help edi size release rep com 下載 數據庫 eof step1:下載 當前redis最新穩定版本是4.0.9 wget http://download.redis.io/releases/redis-4.0.9.tar.gz ste

win10 關於oraclePLSQL Developer的安裝配置以及常見問題解決

WIN10 關於oracle和PLSQL Developer的安裝、配置,以及常見問題解決辦法 我是比較喜歡去官網下載軟體,主要是比較乾淨安全,沒有捆綁軟體。plsql是支援32位oracle的,所以oracle客戶端我裝的32位,據說64位的也是可以用的,但是要配置一些檔案(我圖方

玩轉Windows服務系列——Debug、Release版本的註冊解除安裝及其原理

Windows服務Debug版本 註冊 Services.exe -regserver 解除安裝 Services.exe -unregserver Windows服務Release版本 註冊 Services.exe -service 解除安裝 Services

docker安裝配置及內部tensorflow安裝

docker的安裝,配置,更新和解除安裝 Docker支援下面的這些Ubuntu作業系統: Ubuntu Xenial 16.04 (LTS)Ubuntu Wily 15.10Ubuntu Trusty 14.04 (LTS)Ubuntu Precise 12.04 (

ubuntu安裝配置製作映象還原

每次換電腦或者重灌都重新安裝ubuntu很麻煩,不如一次配好了之後製作成映象,一勞永逸。本文只是提綱,給自己用。 1.全新安裝ubuntu 官網下載ubuntu16.04 amd64映象,用ultraISO寫入U盤。在windows下用disk genius等軟體劃分出一

centos 7搭建vsftp安裝配置解除安裝常見錯誤

系統版本:centos 7 ftp軟體:vsftp 1.檢視計算機是否安裝了vsftp [[email protected] ~]#rpm -qa | grep vsftpd 如果出現vsftpd-2.0.5-21.el5,說明已經安裝 vsftp 2.安裝

【linuxWindows 下的eclipse的安裝配置eclipse常用快捷鍵、eclipse斷點單步除錯】

一、前言 什麼是eclipse?  答:Eclipse 是一個開放原始碼的、基於Java的可擴充套件開發平臺。就其本身而言,它只是一個框架和一組服務,用於通過外掛元件構建開發環境。幸運的是,Eclipse 附帶了一個標準的外掛集,包括Java開發工

btrace安裝配置使用常見異常解除安全限制

一、下載btrace 可以下載它的原始碼包,它的原始碼包是一個gradle專案 如果只想使用它排查問題,也可以直接下載它的bin包,下載地址 可以直接通過這個連結下載1.3.8版本的btrace 二、配置環境變數 解壓完成後需要配置環境變數BTRACE_

linux中軟體包的安裝解除安裝 rpmyum

linux中的軟體安裝有3種方式rpm包安裝,使用rpm工具安裝軟體包yum工具安裝,使用yum命令自動安裝軟體包原始碼包安裝,下載原始碼包,編譯安裝軟體    rpm工具的用法1、查詢rpm是否安裝:rpm -qa|grep lvm(lvm為要查詢的rpm包名)[[emai

從刪庫到跑路再到修庫(修復mongodb下線解除安裝重灌的問題)

2018年8月8號晚上,開始了我們大一在實驗室第一個真正的專案。開始連叢集機器,不小心連錯一臺存著以前爬取的資料的機器,上手就是一頓操作,怎麼說呢,應了那句話,常在水便走哪有不溼鞋,淹死會水的,學長說自己建個數據庫,我尋思確實,沒有庫和環境怎麼跑程式,先搞庫吧。一頓操作,發現

OpenVPN 安裝配置客戶端服務端以及OpenVPN的使用 (Windows 平臺)

OpenVPN 開源,好用,而且免費,感謝 OpenVPN 團隊開發此產品。 簡介 OpenVPN允許參與建立VPN的單點使用公開金鑰、電子證書、或者使用者名稱/密碼來進行身份驗證。它大量使用了OpenSSL加密庫中的SSLv3/TLSv1協議函式庫。目前OpenVP

下載安裝配置解除安裝

檢查環境: //檢查是否裝過了ftp伺服器 如果沒有提示內容折,本機沒有安裝。 [[email protected] local]# rpm -qa|grep vsftpd [[email protected] local]# rpm -qa|grep