在 linux 上安装 docker

先决条件

1、64-bit 系统
2、kernel 3.10+
检查内核版本,返回的值大于3.10即可。

uname -r

更新yum

使用 sudo 或 root 权限的用户登入终端

确保yum是最新的

yum -y update

卸载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-engine12345678910

安装相关工具类:

sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2123

配置docker仓库

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

开始安装

sudo yum install -y docker-ce

安装如果报错

Loaded plugins: fastestmirror
base
https://download-stage.docker.com/linux/centos/7/x86_64/stable/repodata/repomd.xml: [Errno 14] curl#35 - "TCP connection reset by peer"Trying other mirror.
One of the configured repositories failed (Docker CE Stable - x86_64), and yum doesn't have enough cached data to continue. At this point the only

解决方案

sudo vim /etc/yum.repos.d/docker-ce.repo

https://download-stage.docker.com

替换为http://mirrors.aliyun.com/docker-ce

我们重新执行安装命令

安装成功后,使用docker version命令查看是否安装成功

修改 docker 镜像下载地址

sudo mkdir -p /etc/docker
sudo vi /etc/docker/daemon.json

写入中科大的镜像地址:

{
    "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]     
}

启动docker

sudo systemctl start docker.service

验证安装是否成功

sudo docker run hello-world

如出现以下异常

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world9bb5a5d4561a: Pulling fs layer
docker: error pulling image configuration: Get https://dseasb33srnrn.cloudfront.net/registry-v2/docker/registry/v2/blobs/sha256/e3/e38bc07ac18e
See 'docker run --help'.12345678910

又或者

error pulling image configuration: Get https://production.cloudflare.docker.com/registry-v2/docker/registry/v2/blobs/sha256/8d/8de95e6026c348c1206d35a9ba7a043ff71885573dace41b14e4236c44cba593/data?verify=1594222126-UQpK7RccNlkICIkveTTiG79%2BWKI%3D: net/http: TLS handshake timeout

故障分析一

此错误也是网络问题:国内无法访问dockerhub

解决方案一

此时,需要我们配置国内的docker镜像库:

sudo mkdir -p /etc/docker
vim /etc/docker/daemon.json
{"registry-mirrors": ["https://registry.docker-cn.com"]}

(如果你是在阿里云 ESC 上,有更快的镜像库:产品里搜索容器镜像服务,点进去,点击左侧镜像加速器,把加速器地址拷贝过来用)

重启docker服务

sudo systemctl daemon-reload
sudo systemctl restart docker

再次验证docker

sudo docker run hello-world

设置开机自启动

sudo systemctl enable docker

优化工作(非必要步骤)

docker的默认存储位置是/var/lib/docker,如果你盘符不够,想要迁移存储路径。
我们可以使用如下命令:(我们这里用软链接的方式,假定我想移到/data/docker下面)

## 先关服务
service docker stop

## 创建目标目录
mkdir -p /data

## 数据迁移
mv /var/lib/docker/ /data/

## 建立软链接
ln -s /data/docker /var/lib/docker

## 开启服务
service docker start

转载请注明来源。 欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。 可以在下面评论区评论,也可以邮件至 sharlot2050@foxmail.com。

文章标题:在 linux 上安装 docker

字数:658

本文作者:夏来风

发布时间:2018-12-26, 14:52:42

原始链接:http://www.demo1024.com/blog/docker-linux/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。