這邊講解如何在 Ubuntu 上安裝 Docker,並且講解 Docker 有那些基本設定是需要注意的。
參考來源: https://docs.docker.com/engine/installation/linux/ubuntulinux/
實作環境以及相關套件
- 作業系統: Ubuntu Server 14.04 LTS 64 bit
- Docker: 1.7.1
預先準備
- 請先確定 ubuntu 是64位元的版本,並且 kernel 比版本 3.10 還要新
- 確認是 32 位元或 64 位元
-
$ uname -i x86_64
- 檢查 kernel 版本
-
$ uname -r 4.2.0-36-generic
- 更新 docker 的 apt 來源到最新版本 (適用於已經安裝過 docker 的人)
- 確定 APT 可以透過 https 作業,並且已安裝 CA 憑證
-
$ sudo apt-get update $ sudo apt-get install apt-transport-https ca-certificates
- 增加新的 GPG 鑰匙
-
$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
- 使用編輯器打開
/etc/apt/sources.list.d/docker.list
- 清空已存在的項目
- 新增項目
deb https://apt.dockerproject.org/repo ubuntu-trusty main
- 儲存並且關閉
/etc/apt/sources.list.d/docker.list
- 更新 APT package index
-
$ sudo apt-get update
- 移除舊的 docker
-
$ sudo apt-get purge lxc-docker
- 確認 APT 已經連結正確的 repository
-
$ apt-cache policy docker-engine
- 安裝
linux-image-extra
- 因為
linux-image-extra
允許我們使用aufs
儲存引擎 -
- 更新 package manager
-
$ sudo apt-get update
- 安裝
linux-image-extra
-
$ sudo apt-get install linux-image-extra-$(uname -r)
- 再來安裝
apparmor
-
$ sudo apt-get install apparmor
- 接著就能開始安裝 docker 囉!
開始安裝 Docker
- 更新 APT package index
-
$ sudo apt-get update
- 安裝 Docker
-
$ sudo apt-get install docker-engine
- 啟動
docker
程序 -
$ sudo service docker start
- 確定 docker 已經安裝完成
-
$ sudo docker run hello-world
更新 Docker
- 使用
apt-get
安裝最新版的 docker -
$ sudo apt-get upgrade docker-engine
移除 Docker
- 移除 docker package
-
$ sudo apt-get purge docker-engine
- 移除 docker 相關套件
-
$ sudo apt-get autoremove --purge docker-engine
- 以上的指令並不會刪除掉機器上的 images, containers, volumes, or 自己產生的設定檔,如果想將這些全部刪掉的話,可以用以下指令
-
$ rm -rf /var/lib/docker
其他設定
- 建立 Docker 群組
- 如果不想要每次都用 sudo 呼叫 docker 可以參考以下作法
-
- 建立 docker 群組
-
$ sudo groupadd docker
- 將自己的帳號加進 docker 群組
-
$ sudo usermod -aG docker $(whoami)
- 確定自己的帳號有加進 docker 群組
-
$ groups $(whoami) | grep docker
- 確定可以直接執行 docker 而不用再呼叫 sudo
-
$ docker run hello-world
- 如果出現以下的錯誤
Cannot connect to the Docker daemon. Is 'docker daemon' running on this host?
請確認環境變數 DOCKER_HOST 是否有設定值,如果有則清空它
unset DOCKER_HOST