Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。
詳細介紹就不普及了,下面內容來自Docker官網給的CentOS下Docker的安裝指導和自我實踐。
目錄索引
安裝Docker
? — 方法一:使用存儲庫安裝
? —— 設置存儲庫
? —— 安裝Docker
? —— 升級Docker的方法
? — 方法二:下載包安裝
Docker配置
? — 讓非Root用戶管理Docker
? — 開機自動啟動Docker
? — Docker加速器
前提條件
- 64位版本的CentOS7(系統安裝看這里)
- 刪除非官方的Docker包
刪除方法:
Red Hat的操作系統存儲庫包含舊版本的Docker,使用程序包名稱docker
而不是docker-engine
。如果您安裝了此版本的Docker,請使用以下命令刪除它:
$ sudo yum -y remove docker docker-common container-selinux
您可能還需要刪除docker-selinux
與官方docker-engine
軟件包沖突的軟件包。使用以下命令刪除它:
$ sudo yum -y remove docker-selinux
(命令不會刪除/var/lib/docker
中的內容,因此使用舊版本的Docker創建的任何圖像,容器或卷都會保留。)
本人實踐:
? 因為我是CentOS7最小安裝,這些東西都沒有╮(╯_╰)╭!
安裝Docker
可以根據不同的需求以不同方式安裝Docker,包括:
- 設置Docker's repositories并從中安裝,以方便安裝和升級任務。這是推薦的方法。
- 某些用戶下載RPM軟件包并手動安裝并完全手動管理升級。
- 一些用戶不能使用第三方存儲庫,并且必須依賴于CentOS存儲庫中的Docker版本。
方法一:使用存儲庫安裝
第一次安裝需要先設置存儲庫,以后就可以從存儲庫進行安裝、更新或降級Docker了。
設置存儲庫
-
安裝
yum-utils
,它提供yum-config-manager
實用程序:$ sudo yum install -y yum-utils
-
使用一下命令設置穩定版本的存儲庫:
$ sudo yum-config-manager \ --add-repo \ https://docs.docker.com/engine/installation/linux/repo_files/centos/docker.repo
-
可選:啟動測試存儲庫。此存儲庫包含在
docker.repo
上面的文件中,但默認情況下禁用。您可以在穩定存儲庫旁邊啟用它。不要在生產系統或非測試工作負載上使用不穩定的存儲庫。警告:如果啟用了穩定和不穩定的存儲庫,則在
yum install
oryum update
命令中指定版本的安裝或更新將始終安裝盡可能高的版本,這幾乎肯定是不穩定的版本。$ sudo yum-config-manager --enable docker-testing
您可以
testing
通過運行yum-config-manager
帶有--disable
標志的命令來禁用存儲庫。要重新啟用它,請使用--enable
標志。以下命令禁用存儲testing
庫。$ sudo yum-config-manager --disable docker-testing
安裝Docker
-
更新
yum
包索引。$ sudo yum makecache fast
如果這是您在添加Docker存儲庫之后第一次刷新包索引,將提示您接受GPG密鑰,并且將顯示密鑰的指紋。驗證指紋是否匹配
58118E89F3A912897C070ADBF76221572C52609D
,如果匹配 ,請接受密鑰。 -
安裝最新版本的Docker,或轉到下一步安裝特定版本。
$ sudo yum -y install docker-engine
警告:如果啟用了穩定和不穩定的存儲庫,則安裝或更新Docker而不在
yum install
oryum upgrade
命令中指定版本將始終安裝最高可用版本,這幾乎肯定是不穩定版本。 -
在生產系統上,您應該安裝特定版本的Docker,而不是總是使用最新版本。列出可用的版本。此示例使用
sort -r
命令按版本號對結果進行排序,從最高到最低,并被截斷。注意:此
yum list
命令僅顯示二進制包。要顯示源包以及,.x86_64
從包名稱中省略。$ yum list docker-engine.x86_64 --showduplicates |sort -r docker-engine.x86_64 1.13.0-1.el7 docker-main docker-engine.x86_64 1.12.5-1.el7 docker-main docker-engine.x86_64 1.12.4-1.el7 docker-main docker-engine.x86_64 1.12.3-1.el7 docker-main
列表的內容取決于啟用哪些存儲庫,并且將特定于您的版本的CentOS(
.el7
在本示例中由版本上的后綴指示)。選擇要安裝的特定版本。第二列是版本字符串。第三列是存儲庫名稱,指示軟件包來自哪個存儲庫,其擴展名其穩定性級別。要安裝特定版本,請將版本字符串附加到軟件包名稱,并用連字符(-
)分隔它們:$ sudo yum -y install docker-engine-<VERSION_STRING>
-
啟動Docker。
$ sudo systemctl start docker
-
docker
通過運行hello-world
映像驗證是否已正確安裝。$ sudo docker run hello-world
此命令下載測試映像并在容器中運行它。當容器運行時,它打印一個信息消息并退出。
Docker已安裝并運行。您需要使用sudo
運行Docker命令。如果想允許非特權用戶運行Docker命令,請參見后面的配置部分。
升級Docker的方法
要升級Docker,首先運行sudo yum makecache fast
,然后再選擇新版本進行安裝。
本人實踐:
? 設置穩定版本那句命令為了顯示用了”\“換行,其實就是一句命令下來的,其他執行正常安裝成功。
方法二:下載包安裝
如果不能使用Docker的存儲庫來安裝Docker,可以下載該.rpm
版本的 文件并手動安裝。每次要升級Docker時,都需要下載新文件。
轉到https://yum.dockerproject.org/repo/main/centos/ 并選擇您的CentOS版本的子目錄。下載
.rpm
要安裝的Docker版本的文件。-
安裝Docker,將下面的路徑更改為您下載Docker包的路徑。
$ sudo yum -y install /path/to/package.rpm
-
啟動Docker。
$ sudo systemctl start docker
-
docker
通過運行hello-world
映像驗證是否已正確安裝。$ sudo docker run hello-world
同樣,您需要使用sudo
運行Docker命令。如果想允許非特權用戶運行Docker命令,請參見后面的配置部分。
Docker配置
讓非Root用戶管理Docker
默認情況下,其他用戶只能使用sudo
來使用root賬號運行Docker。如果在使用docker
命令時不想使用sudo
,需要創建一個名為docker
的用戶組,并將當前用戶添加進去。
-
創建
docker
組。$ sudo groupadd docker
-
將您的用戶添加到
docker
組。$ sudo usermod -aG docker $USER
注銷并重新登錄,以便重新評估您的組成員資格。
-
驗證您可以
docker
沒有命令sudo
。$ docker run hello-world
開機自動啟動Docker
開啟:
$ sudo systemctl enable docker
關閉:
$ sudo systemctl disable docker
Docker加速器
萬惡的那啥,在國內連接Docker Hub非常的不穩定,還好有DaoCloud的加速器。注冊用戶登錄后,選擇加速器。根據提示就可以將 --registry-mirror 加入到你的 Docker 配置文件 /etc/default/docker 中,方便國內用戶使用。
附Docker安裝命令純凈版
[xxx@localhost ~]$ su root
Password:
[root@localhost ~]$ yum -y remove docker docker-common container-selinux docker-selinux
[root@localhost ~]$ yum install -y yum-utils
[root@localhost ~]$ yum-config-manager --add-repo https://docs.docker.com/engine/installation/linux/repo_files/centos/docker.repo
[root@localhost ~]$ yum-config-manager --disable docker-testing
[root@localhost ~]$ yum makecache fast
[root@localhost ~]$ yum -y install docker-engine
[root@localhost ~]$ docker version
[root@localhost ~]$ docker run hello-world