服务器版本:CentOS Linux release 7.6.1810 (Core)

Docker版本:18.06.1-ce

tgz包下载官网:https://download.docker.com/linux/static/stable/x86_64/

一、准备工作

1.上传软件包到服务器/usr/local/software路径(路径可自定义) 2.关闭防火墙,关闭selinux

临时并永久关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
临时并永久关闭selinux
setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

二、安装

1. 卸载旧的docker版本

较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项。
yum remove docker \
           docker-client \
           docker-client-latest \
           docker-common \
           docker-latest \
           docker-latest-logrotate \
           docker-logrotate \
           docker-engine

删除安装包:
yum remove docker-ce

删除镜像、容器、配置文件等内容:
rm -rf /var/lib/docker

2.解压,启动,注册服务

解压
cd /usr/local/software
tar -zxvf docker-18.06.1-ce.tgz
cp docker/* /usr/bin/

注册成系统服务器
vim /etc/systemd/system/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

启动docker,并设置为开机自启动
chmod +x /etc/systemd/system/docker.service
systemctl daemon-reload
systemctl start docker
systemctl enable docker
systemctl status docker

查看docker版本
docker --version

3.修改docker默认存储镜像位置

1.新建/var/lib/dockerRegistry
mkdir -p /var/lib/dockerRegistry
2.查看docker信息 
docker info
Docker默认的镜像和容器存储位置在  /var/lib/docker中
3.查看服务配置文件位置
[root@k8snode1 ~]# systemctl show --property=FragmentPath docker
FragmentPath=/etc/systemd/system/docker.service
4.修改FragmentPath对应的docker.service文件
vim /etc/systemd/system/docker.service
在ExecStart=/usr/bin/dockerd  添加 --graph=/var/lib/dockerRegistry
5.重载配置文件 
systemctl daemon-reload
6.重启docker  
systemctl restart docker.service
7.查看docker信息 
docker info

image.png

三、配置镜像源

vim /etc/docker/daemon.json
添加以下内容
{
  "registry-mirrors": ["http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn"]
}

# 重新加载某个服务的配置文件
systemctl daemon-reload
# 重新启动 docker
systemctl restart docker

常用命令

https://blog.51cto.com/u_15418847/4770659

参考

https://www.cnblogs.com/mrhelloworld/p/docker3.html