简介
从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Docker EE。
Docker CE 即社区免费版,Docker EE 即企业版,强调安全,但需付费使用。
Docker支持以下的CentOS版本:
- CentOS 7 (64-bit)
- CentOS 6.5 (64-bit) 或更高的版本
要求
Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
通过 uname -r 命令查看你当前的内核版本
uname -r
CentOS7 Docker 安装
yum 安装
- 移除旧的版本
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
- 安装一些必要的系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
- 删除软件源(可选)
# 手动删除文件即可
rm /etc/yum.repos.d/docker-ce.repo
# 更新缓存
sudo yum makecache fast
- 添加软件源信息
# 阿里(推荐)
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 国内
sudo yum-config-manager --add-repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
- 更新 yum 缓存
sudo yum makecache fast
- 安装 Docker-ce
sudo yum -y install docker-ce
- 启动 Docker 后台服务
sudo systemctl start docker
sudo systemctl enable docker
- 测试运行 hello-world
docker run hello-world
- 卸载(可选)
sudo yum remove docker-ce
sudo rm -rf /var/lib/docker
脚本安装
-
使用 sudo 或 root 权限登录 Centos
-
确保 yum 包更新到最新
sudo yum update
- 执行 Docker 安装脚本
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
执行这个脚本会添加 docker.repo 源并安装 Docker
- 启动 Docker 进程
sudo systemctl start docker
sudo systemctl enable docker
- 验证 docker 是否安装成功并在容器中执行一个测试的镜像
sudo docker run hello-world
sudo docker ps
离线安装
-
准备docker.service 系统配置文件
docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
- 准备安装脚本 install.sh
#!/bin/sh
echo '解压tar包...'
tar -xvf $1
echo '将docker目录移到/usr/bin目录下...'
cp docker/* /usr/bin/
echo '将docker.service 移到/etc/systemd/system/ 目录...'
cp docker.service /etc/systemd/system/
echo '添加文件权限...'
chmod +x /etc/systemd/system/docker.service
echo '重新加载配置文件...'
systemctl daemon-reload
echo '启动docker...'
systemctl start docker
echo '设置开机自启...'
systemctl enable docker.service
echo 'docker安装成功...'
docker -v
- 准备卸载脚本 uninstall.sh
#!/bin/sh
echo '删除docker.service...'
rm -f /etc/systemd/system/docker.service
echo '删除docker文件...'
rm -rf /usr/bin/docker*
echo '重新加载配置文件'
systemctl daemon-reload
echo '卸载成功...'
- 安装
此时目录为:(只需要关注docker-17.03.2-ce.tgz、docker.service、install.sh、uninstall.sh即可)
执行脚本 sh install.sh docker-17.03.2-ce.tgz
脚本执行完毕后,执行 docker -v
发现此时docker已安装成功,可以用docker --help
查看docker命令,从现在开始你就可以自己安装image和container了
镜像加速
鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决
国内镜像地址:
新版的 Docker 使用 /etc/docker/daemon.json(Linux) 或者 %programdata%\docker\config\daemon.json(Windows) 来配置 Daemon。
请在该配置文件中加入(没有该文件的话,请先建一个):
{
"registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"],
"live-restore": true
}
重启
systemctl daemon-reload
systemctl restart docker