docker安装

docker安装

使用环境:CentOS7

Docker 要求CentOS系统内核版本高于3.10

命令查看内核版本

1
uname -r  # 当前版本 3.10.0-1160.el7.x86_64

官方文档

一.在线安装

1.安装所需依赖

1
yum -y install yum-utils

2. 指定 Docker 镜像源,使用阿里云加速

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

(注:官方存储库地址为 https://download.docker.com/linux/centos/docker-ce.repo)

3.安装Docker

yum list docker-ce --showduplicates | sort -r可以列出可用版本

1
yum -y install docker-ce

6.启动Docker

1
2
3
4
5
6
7
docker -v #查看版本
systemctl start docker #启动
systemctl stop docker #停止
systemctl status docker #查看 Docker 状态
systemctl enable docker #开机自动启动

docker run hello-world

出现如下错误

1
2
Unable to find image 'hello-world:latest' locally
docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp 65.49.26.98:443: i/o timeout.

解决办法

vi /etc/docker/daemon.json

1
2
3
4
5
6
7
8
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.imgdb.de",
"https://docker-0.unsee.tech",
"https://docker.hlmirror.com"
]
}

修改完后重启就可以了

1
2
systemctl daemon-reload
systemctl restart docker
1
2
#查看加速器地址
docker info | grep -A 10 "Registry Mirrors"

卸载docker

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
1.#停止服务
systemctl stop docker

2.#删除 Docker 二进制文件
rm -f /usr/bin/docker*
rm -f /usr/bin/containerd*
rm -f /usr/bin/runc

3.#删除Docker服务文件
rm -f /etc/systemd/system/docker.service
systemctl daemon-reload

4.#删除 Docker 数据目录
rm -rf /var/lib/docker
rm -rf /data/docker # 如果您自定义了存储目录

5.#删除其它Docker 配置文件
rm -rf /etc/docker
rm -rf /etc/systemd/system/docker.service.d
rm -rf /var/run/docker
rm -rf /var/log/docker

6.#验证卸载是否成功
#检查是否还有残留的 Docker 文件,如果输出为空或显示未找到命令,说明卸载成功。
which docker
docker --version

二.离线安装

1.下载

1
https://download.docker.com/linux/static/stable/x86_64/

或者

1
wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.26.tgz

2.安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#1.解压
tar -xvzf docker-20.10.26.tgz
#2.移动到系统路径
cp docker/* /usr/bin/
#3.创建服务文件
#为 Docker 创建系统服务文件 /etc/systemd/system/docker.service
cat > /etc/systemd/system/docker.service <<EOF
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP \$MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
[Install]
WantedBy=multi-user.target
EOF

#4.启动 Docker 服务
systemctl start docker

docker容器自启

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 开启容器自启动
docker update --restart=always 【容器名】
例如:docker update --restart=always tracker


# 关闭容器自启动
docker update --restart=no【容器名】
例如:docker update --restart=no tracker

##### 相关配置解析
no:不自动重启容器。(默认)

on-failure: 如果容器由于错误而退出,则重新启动容器,该错误表现为非零退出代码。

always:如果容器停止,请务必重启容器。如果手动停止,则仅在Docker守护程序重新启动或手动重新启动容器本身时才重新启动。(参见重启政策详情中列出的第二个项目)

unless-stopped:类似于always,除了当容器停止(手动或其他方式)时,即使在Docker守护程序重新启动后也不会重新启动容器。