linux下搭建docker

一、概要

????目前,CentOS 僅發(fā)行版本中的內核支持 Docker。Docker 運行在 CentOS7上,要求系統(tǒng)為64位、系統(tǒng)內核版本為3.10以上。Docker 運行在 CentOS-6.5或更高的版本的 CentOS 上,要求系統(tǒng)為64位、系統(tǒng)內核版本為2.6.32-431或者更高版本。

????從2017 年 3 月開始 docker 在原來的基礎上分為兩個版本: Docker CE 和 Docker EE。DockerCE 即社區(qū)免費版,Docker EE 即企業(yè)版,強調安全,但需付費使用。本文介紹Docker CE 的安裝使用。

? ? 本安裝手冊是本人安裝docker時整理的文檔,實踐可行。

二、安裝

? ? 2.1、首先確認CentOS 系統(tǒng)的內核版本是否高于3.10

? ? ? ? 通過命令:uname -r? 查看內核版本

? ? 2.2、如已安裝過docker可通過如下命令移除:

? ? ? ? ? ? ? sudo yum remove docker \

? ? ? ? ? ? ? docker-client \

? ? ? ? ? ? ? docker-client-latest \

? ? ? ? ? ? ? docker-common \

? ? ? ? ? ? ? docker-latest \

? ? ? ? ? ? ? docker-latest-logrotate \

? ? ? ? ? ? ? docker-logrotate \

? ? ? ? ? ? ? docker-selinux \

? ? ? ? ? ? ? docker-engine-selinux \

? ? ? ? ? ? ? docker-engine

? ? ? ? 2.3、安裝一些必要系統(tǒng)工具

? ??????????????sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

? ? ? ? 2.4、更新yum緩存

? ??????????????sudo yum makecache fast

? ? ? ? 2.5、?安裝docker-ce

? ??????????????sudo yum -yinstalldocker-ce

? ? ? ? 2.6、啟動docker后臺服務

? ??????????????sudo systemctlstartdocker

? ? ? ? 2.7、驗證docker啟動是否成功

? ??????????????sudo systemctl status docker

????????????????輸出如下信息表示成功:Active: active (running)

? ? ? ? 2.8、查看docker狀態(tài)

? ??????????????sudodockerinfo

? ? ? ? 2.9、刪除docker-ce

? ??????????????sudo yum remove docker-ce

????????????????sudo rm -rf /var/lib/docker

三、可能出現(xiàn)的錯誤

? ??????3.1、Docker啟動Get Permission Denied

? ? ? ? ????問題描述:"Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.26/images/json: dial unix /var/run/docker.sock: connect: permission denied"

? ? ? ? ? ? 原因:(摘自docker mannual上的一段話)Manage Docker as a non-root userThe docker daemon bindstoa Unix socket instead of a TCP port. By default that Unix socket is owned by the user rootandother users can only access it using sudo. The docker daemon always runs as the root user.Ifyou don’t wanttouse sudo when you use the docker command, create a Unix group called dockerandadd users toit. When the docker daemon starts, it makes the ownership of the Unix socket read/writable by the docker group。

大概的意思就是:docker進程使用Unix Socket而不是TCP端口。而默認情況下,Unix socket屬于root用戶,需要root權限才能訪問。

解決方法1:使用sudo獲取管理員權限,運行docker命令。

解決方法2:docker守護進程啟動的時候,會默認賦予名字為docker的用戶組讀寫Unix socket的權限,因此只要創(chuàng)建docker用戶組,并將當前用戶加入到docker用戶組中,那么當前用戶就有權限訪問Unix socket了,進而也就可以執(zhí)行docker相關命令sudo groupadd docker #添加docker用戶組sudo gpasswd -a$USERdocker #將登陸用戶加入到docker用戶組中newgrp docker #更新用戶組docker ps #測試docker命令是否可以使用sudo正常使用。

? ??3.2、xxx is not in the sudoers file.This incident will be reported

? ??????????原因:普通用戶用sudo執(zhí)行命令時報"xxx is not in the sudoers file.This incident will be reported"錯誤,解決方法就是在/etc/sudoers文件里給該用戶添加權限。

解決方案:1、切換到root用戶下。

? ? ? ? ? ? ? ? ? 2、/etc/sudoers文件默認是只讀的,對root來說也是,因此需先添加sudoers文件的寫權限,命令是:chmod u+w /etc/sudoers。

? ? ? ? ? ? ? ? ? 3、編輯sudoers文件 vi /etc/sudoers?

? ? ? ? ? ? ? ? ? ? ? ? 找到這行 rootALL=(ALL)ALL,在他下面添加xxxALL=(ALL)ALL(這里的xxx是你的用戶名)?

? ? ? ? ? ? ? ? ? ? ? ? ps:這里說下你可以sudoers添加下面四行中任意一條 :

????????????????????????youuser ????ALL=(ALL) ????ALL

????????????????????????%youuser????ALL=(ALL)????ALL

????????????????????????youuser????ALL=(ALL) ???? NOPASSWD:ALL

????????????????????????%youuser????ALL=(ALL) ???? NOPASSWD:ALL

????????????????????????第一行:允許用戶youuser執(zhí)行sudo命令(需要輸入密碼).?

? ? ? ? ? ? ? ? ? ? ? ? 第二行:允許用戶組youuser里面的用戶執(zhí)行sudo命令(需要輸入密碼).?

? ? ? ? ? ? ? ? ? ? ? ? 第三行:允許用戶youuser執(zhí)行sudo命令,并且在執(zhí)行的時候不輸入密碼.?

? ? ? ? ? ? ? ? ? ? ? ? 第四行:允許用戶組youuser里面的用戶執(zhí)行sudo命令,并且在執(zhí)行的時候不輸入密碼.

????????????????4、撤銷sudoers文件寫權限,命令:chmod u-w /etc/sudoers

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容