安装
安装
官方安装指南:
CentOS 安装 Docker
系统要求
- Docker CE 支持 64 位版本 CentOS 7
- CentOS 7 内核版本不低于3.10
查看内核版本
[root@oracle11g ~]# uname -r
3.10.0-1127.18.2.el7.x86_64
卸载旧版本
旧版本的Docker称为docker或者docker-engine,使用以下命令卸载旧版本
# 查看 docker 是否安装
yum list installed | grep docker
# 删除安装的 docker 内容
sudo yum remove docker docker-common docker-selinux docker-engine docker-ce-cli docker-ce
yum 安装
注意:如果安装的事 centos 7 minimal版本,执行安装提示 “没有可用软件包” 这个时候需要安装必要的软件依赖及更新增加docker-ce yum源
# 更新软件源
yum update
# 安装必要依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 添加docker源
[root@oracle11g ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
已加载插件: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
repo saved to /etc/yum.repos.d/docker-ce.repo
# 更新yum缓存
yum makecache fast
# 查看所有仓库中所有docker版本
yum list docker-ce --showduplicates|sort -r
# 安装
sudo yum install -y docker-ce
# 安装(选择版本)
yum -y install docker-ce-19.03.0.ce
使用脚本安装
在测试或开发环境中,docker官方微了简化安装流程,提供便捷的安装脚本,centos系统上可以使用如下命令进行安装(docker ce edge)
curl -fsSL https://get.docker.com -o get-docker.sh #获取脚本
sudo sh get-docker.sh --mirror Aliyun #安装脚本
自制脚本
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
USER='docker'
GROUP='docker'
Version="19.03.13-3.el7"
# 安装环境
echo "配置 yum 环境"
yum install -y yum-utils device-mapper-persistent-data lvm2 wget || echo -e '\033[1;31m安装失败,请检查网络和yum源配置!\033[0m'
# 配置安装源
echo "配置docker安装源"
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 更新yum缓存
yum makecache fast
# 安装docker
echo "安装docker"
yum -y install docker-ce-$Version docker-ce-cli-$Version || echo -e '\033[1;31m安装失败,请检查网络和yum源配置!\033[0m'
# 创建用户组
echo "创建用户组:docker"
egrep "^$GROUP" /etc/group >& /dev/null
if [ $? -ne 0 ]
then
groupadd $USER
fi
# 创建用户
echo "创建用户:docker"
egrep "^$USER:" /etc/passwd >& /dev/null
if [ $? -ne 0 ]
then
useradd -g $GROUP -s /sbin/nologin $USER -M
fi
echo "配置docker国内镜像"
if [ ! -d "/etc/docker" ]
then
mkdir -p /etc/docker
fi
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors":[
"https://ung2thfc.mirror.aliyuncs.com",
"https://mirror.ccs.tencentyun.com",
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com"
]
}
EOF
echo "注册服务"
systemctl daemon-reload
systemctl enable --now docker
docker version && echo -e "\033[1;32m $Version 安装成功!\033[0m" || echo -e "\033[1;32m $Version 安装成功!\033[0m"
启动Docker CE
# 设置开机启动
[root@oracle11g ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
# 启动|重启|停止|当前状态
sudo systemctl start|restart|stop|status docker
建立 docker 用户组
默认情况下,docker命令会使用Unix Socket与Docker引擎通讯。而只有root用户和docker组的用户才可以访问docker引擎的Unix Socket。一般Linux系统上不会直接使用root用户进行操作。因此,需要使用docker的用户加入docker用户组
sudo groupadd docker #建立docker组
sudo usermod -aG docker $USER #将当前用户追加入docker组
# 添加到docker组后需要切换下用户,才生效或者更新组
sudo su #切换到root用户
su username #切换回之前用户(username之前用户名称)
# 更新组
newgrp docker #更新用户
测试docker是否安装正确
docker run hello-world #启动一个基于hello-world镜像的容器