背景
最近在研究開源數據庫,由於機器存儲空間有限。計划把個人的測試環境等遷移到docker上去,方便后續加快完成搭建等工作,把時間用到該用的地方去。
集成環境
個人測試環境,我與IT人無異都是喜歡把部分環境放到虛擬機上。
| 項目 | 描述 |
|---|---|
| 操作系統 | CentOS Linux release 7.6.1810 x86_64 |
| 內存 | 2G |
| 硬盤大小 | 30G |
| CPU | Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz |
| DOCKER | 18.09.1-3.el7 (stable) |
| 虛擬機軟件 | Oracle VM VirtualBox 6.0.2 |
網絡狀況
| 項目 | 連接方式 | 描述 |
|---|---|---|
| 網卡1 | Host-Only | 用於本機連接虛擬機 |
| 網卡2 | NAT | 用於公共環境下訪問外網,如wlan |
| 網卡3 | Bridge | 用於辦公/家庭網絡情況下訪問外網 |
OS禁用項目列表
- NetworkManager
systemctl stop NetworkManager
systemctl disable NetworkManager
- Firewalld
systemctl stop firewalld
systemctl disable firewalld
- selinux
修改文件/etc/selinux/config
SELINUX=enforcing ---->把值調整為disabled
安裝過程、遇到問題及其解決方案
- 更新yum資源庫,以便后續安裝時可以不會因版本問題導致安裝報錯。
yum update
- 卸載已安裝的docker組件
yum remove docker docker-common docker-selinux docker-engine
- 安裝docker所需依賴包
yum install -y yum-utils device-mapper-persistent-data lvm2
- 把docker-ce的資源文件下載到本地
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
在執行過程中,有以下報錯提示:
Loaded plugins: fastestmirror
adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
Could not fetch/save url https://download.docker.com/linux/centos/docker-ce.repo to file /etc/yum.repos.d/docker-ce.repo: [Errno 14] curl#6 - "Could not resolve host: download.docker.com; Unknown error"
由於我安裝環境經過N層代理和防火牆,判斷為網絡問題。直接下載repo文件到本地並在服務器存放目錄下執行:
# yum-config-manager --add-repo docker-ce.repo
Loaded plugins: fastestmirror ------->從這開始是執行結果
adding repo from: docker-ce.repo
grabbing file docker-ce.repo to /tmp/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
- 查看docker可安裝版本
yum list docker-ce --showduplicates | sort -r
Loading mirror speeds from cached hostfile ------>以下開始是結果
Loaded plugins: fastestmirror
docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.03.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 18.03.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.12.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.12.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.09.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.09.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.06.2.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.06.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.06.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.03.3.ce-1.el7 docker-ce-stable
docker-ce.x86_64 17.03.2.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable
Available Packages
- 安裝docker-ce軟件
默認安裝最新版本:
yum install docker-ce
如需安裝特定版本:
yum install docker-ce-18.09.0
在過程中,以下是報錯提示:
# yum install docker-ce
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package docker-ce.x86_64 3:18.09.1-3.el7 will be installed
--> Processing Dependency: container-selinux >= 2.9 for package: 3:docker-ce-18.09.1-3.el7.x86_64
--> Processing Dependency: containerd.io for package: 3:docker-ce-18.09.1-3.el7.x86_64
--> Processing Dependency: docker-ce-cli for package: 3:docker-ce-18.09.1-3.el7.x86_64
--> Processing Dependency: libcgroup for package: 3:docker-ce-18.09.1-3.el7.x86_64
--> Running transaction check
---> Package containerd.io.x86_64 0:1.2.2-3.el7 will be installed
---> Package docker-ce.x86_64 3:18.09.1-3.el7 will be installed
--> Processing Dependency: container-selinux >= 2.9 for package: 3:docker-ce-18.09.1-3.el7.x86_64
---> Package docker-ce-cli.x86_64 1:18.09.1-3.el7 will be installed
--> Processing Dependency: libltdl.so.7()(64bit) for package: 1:docker-ce-cli-18.09.1-3.el7.x86_64
---> Package libcgroup.x86_64 0:0.41-20.el7 will be installed
--> Running transaction check
---> Package docker-ce.x86_64 3:18.09.1-3.el7 will be installed
--> Processing Dependency: container-selinux >= 2.9 for package: 3:docker-ce-18.09.1-3.el7.x86_64
---> Package libtool-ltdl.x86_64 0:2.4.2-22.el7_3 will be installed
--> Finished Dependency Resolution
Error: Package: 3:docker-ce-18.09.1-3.el7.x86_64 (docker-ce-stable)
Requires: container-selinux >= 2.9
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
在yum安裝的過程中,發現缺失包container-selinux,而且版本是2.9以上。我翻遍了全網,並沒有找到這個包。最后無奈之下,在centos官網下載了一個container-selinux-2.74的RPM包嘗試看看。
# yum install container-selinux-2.74-1.el7.noarch.rpm
Loaded plugins: fastestmirror
.......... ------>這里省略了N行信息
Installed:
container-selinux.noarch 2:2.74-1.el7
Dependency Installed:
audit-libs-python.x86_64 0:2.8.4-4.el7 checkpolicy.x86_64 0:2.5-8.el7 libcgroup.x86_64 0:0.41-20.el7
libsemanage-python.x86_64 0:2.5-14.el7 policycoreutils-python.x86_64 0:2.5-29.el7 python-IPy.noarch 0:0.75-6.el7
setools-libs.x86_64 0:3.3.8-4.el7
Complete!
接下來,嘗試繼續安裝docker-ce。
yum install docker-ce
問題解決,但由於網絡問題,下載了N久都是在報錯。又開啟了老辦法模式,下載包到本地進行安裝。
根據yum資料庫的分析
=================================================================================================================================
Package Arch Version Repository Size
=================================================================================================================================
Installing:
docker-ce x86_64 3:18.09.1-3.el7 docker-ce-stable 19 M
Installing for dependencies:
containerd.io x86_64 1.2.2-3.el7 docker-ce-stable 22 M
docker-ce-cli x86_64 1:18.09.1-3.el7 docker-ce-stable 14 M
libtool-ltdl x86_64 2.4.2-22.el7_3 Base 49 k
一共需要4個依賴包,其中libtool-ltdl在Base下,即在光盤中,無需下載。其他3個依賴包就需要在docker的網站上進行下載。下載並上傳到本地,使用yum命令進行安裝:
yum install docker-ce-cli-18.09.1-3.el7.x86_64.rpm
yum install containerd.io-1.2.2-3.el7.x86_64.rpm
yum install docker-ce-18.09.1-3.el7.x86_64.rpm
當顯示Complete!時,檢查安裝版本:
# systemctl start docker
# docker version
Client: ------->以下開始為結果
Version: 18.09.1
API version: 1.39
Go version: go1.10.6
Git commit: 4c52b90
Built: Wed Jan 9 19:35:01 2019
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 18.09.1
API version: 1.39 (minimum version 1.12)
Go version: go1.10.6
Git commit: 4c52b90
Built: Wed Jan 9 19:06:30 2019
OS/Arch: linux/amd64
Experimental: false
至此,我的心情有多雞凍呀!之前雖然在ubuntu上安裝過,但是無那么多問題。這次真算是好事多磨了。
趕緊設置開機自啟動:
systemctl enable docker
