Oracle Linux
Docker 支持Oracle 的 Linux 6 和7。你不需要Oracle Linux 的支持服務去安裝Docker。
這個章節會指導你使用Docker-managed發佈包和安裝機制去完成安裝。使用這些包確保你獲得Docker的最新發行版。如果你希望使用Oracle-managed 包,請查閱Oracle Linux 文檔。
先決條件
限於 Docker 當前的限制,Docker 只能夠在 x86_64 架構上的系統上運行。Docker 要求 Oracle Linux 的內核必須是3.8.13及更高的版本(Unbreakable Enterprise Kernel Release 3)。這個內核支持Docker btrfs 存儲引擎,在Oracle Linux 6和7上。
安裝
-
使用一個
sudo
或root
權限的用戶登錄到你的系統。 -
確保你的yum包已經更新。
$ sudo yum update
-
添加 yum repo。
爲6版本:
$ cat >/etc/yum.repos.d/docker.repo <<-EOF [dockerrepo] name=Docker Repository baseurl=https://yum.dockerproject.org/repo/main/oraclelinux/6 enabled=1 gpgcheck=1 gpgkey=https://yum.dockerproject.org/gpg EOF
爲 7版本:
$ cat >/etc/yum.repos.d/docker.repo <<-EOF [dockerrepo] name=Docker Repository baseurl=https://yum.dockerproject.org/repo/main/oraclelinux/7 enabled=1 gpgcheck=1 gpgkey=https://yum.dockerproject.org/gpg EOF
-
安裝 Docker 包。
$ sudo yum install docker
-
啓動 Docker daemon。
在 Oracle Linux 6上:
$ sudo service docker start
在 Oracle Linux 7:
$ sudo systemctl start docker.service
-
通過運行一個測試鏡像到一個容器裏,覈實安裝是否成功。
$ sudo docker run hello-world
可選配置
這個小節包含一些可選的步驟去配置你的Oracle 系統,爲Docker 提供更好的支持。
創建一個 Docker 組
docker
daemon 綁定一個 Unix socket 替代你一個 TCP端口。默認情況下,Unix
socket 屬於 root
用戶,其他用戶只能使用 sudo
才能訪問。正是因爲這個原因, docker
daemon
總是需要 root
用戶啓動。
爲了避免每次使用 docker
命令時,需要頻繁追加 sudo
,可以創建一個名爲 docker
組並把有需要的用戶添加進去。當 docker
daemon
啓動時,通過 docker
組可以共享Unix
Socket的讀寫權限。
警告:docker
組是和root
用戶等價的。關於這個設置對系統安全影響,請移步 Docker Daemon 的攻擊面去了解更多。
創建一個 docker
組並添加你的用戶:
-
使用
sudo
特權登陸到你的系統。 -
創建
docker
組並添加你的用戶。sudo usermod -aG docker username
-
先登出,然後再登陸。
這樣確保你的用戶權限的正確性。
-
通過執行不帶
sudo
的docker
命令來覈實設置是否成功。$ docker run hello-world
如果得到類似如下的失敗信息:
Cannot connect to the Docker daemon. Is 'docker daemon' running on this host?
檢查
DOCKER_HOST
環境變量是否配置了你的shell,如果沒有,設置它。
設置開機啓動
你可以設置 Docker daemon 跟隨系統一起啓動。
在 Oracle Linux 6上:
$ sudo chkconfig docker on
在 Oracle Linux 7上:
$ sudo systemctl enable docker.service
如果你需要添加一個 HTTP 代理,爲 Docker 運行時文件設置一個不同的目錄或一個分區,或者其他定製化的設置,請參考Systemd文章去了解更多如何去使用你的 Systemd 定製化Docker daemon 選項。
使用 btrfs 存儲引擎
Docker 在 Oracle Linux 6 和 7上支持btrfs 存儲引擎的使用。在開啓 btrfs 支持錢,確保 /var/lib/docker
是否基於 btrfs-based
文件系統進行存儲。回顧 Oracle Linux 管理員的解決方案指南 中的第5章,獲取如何創建和掛載btrfs文件系統的細節。
啓用 btrfs 支持:
-
確保
/var/lib/docker
是基於一個 btrfs 文件系統上。 -
編輯
/etc/sysconfig/docker
並添加-s btrfs
到OTHER_ARGS
文件。 -
重啓 Docker daemon。
卸載
卸載 Docker 包:
$ sudo yum -y remove docker
上面的命令不會刪除保存本地的鏡像、容器、數據卷或用戶創建的配置文件。如果你想刪除它們,可以使用如下命令:
$ rm -rf /var/lib/docker
你必須手動刪除用戶創建的配置文件。
已知問題
Docker 自動卸載 btrfs 文件系統
如果你的Docker使用 btrfs 存儲引擎,當你停止Docker服務是,在關閉過程中,它將會卸載 btrfs 文件系統。所以,當你想重啓你的Docker服務室,你應該確保文件一同已經被優先掛載。
在 Oracle Linux 7,你可以使用一個 systemd.mount
定義和修改 Docker systemd.service
的
btrfs掛載依賴。
Oracle Linux 7 對SElinux的支持
SElinux 必須設置爲 Permissive
或 Disabled
在 /etc/sysconfig/selinux
文件。纔可以在 Oracle Linux 7上使用 btrfs 存儲。
未來的問題?
如果你有一個Oracle Linux 可用的 Basic 或 Premier Support Subscription,你可以報告任何關於安裝Docker的問題到 My Oracle Support上。
如果你沒有一個 Oracle Linux Support Subscription,你可以使用 Oracle Linux Forum 。