Linux 下安装 docker 服务
一、在线安装
1、更新 yum 源
yum update
#选择版本安装 不加版本号 默认最新版本
2、安装 docker
# 不指定版本安装,默认安装最新版
yum install -y docker-ce
# 指定版本安装
yum -y install docker-ce-20.10.6-3.el7
二、离线安装
1、下载 docker 安装包
docker所有版本:
https://download.docker.com/linux/static/stable/
尽量不下载最新版本
2、解压安装包
tar -xvf docker-20.10.x.tgz
3、移动解压后的安装包
# 拷贝文件到 /usr/bin 目录下
cp docker/* /usr/bin/
4、将docker注册为service系统服务
# 创建配置文件
vi /etc/systemd/system/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 --ipv6=false
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
5、更改文件权限,并重载 unit 配置文件
#docker启动脚本赋予权限
chmod +x /etc/systemd/system/docker.service
#重载unit配置文件
systemctl daemon-reload
6、运行docker命令
# 启动Docker
systemctl start docker
# 重启 docker
systemctl restart docker
# 停止 docker
systemctl stop docker
# 查看Docker状态
systemctl status docker
# 配置开机docker自启 (
# 该步骤可配可不配,根据自己实际需要进行选择配置
# 不配置---------当服务器宕机重启后,docker 服务不会随系统启动
# 配置 -----------当服务器宕机重启后,docker 服务会随系统启动
systemctl enable docker.service
7、查看docker版本
# 查看版本
docker -v
# 查看 docker 详情
docker info
8、迁移 docker 工作目录(可选)
查看 docker 工作目录
docker info | grep 'Docker Root Dir'
此时 docker 工作目录在 /var/lib/docker 下
方法一:
# 1、查看 docker 服务是否正在运行
systemctl status docker
# 2、停止 docker 服务
systemctl stop docker
# 3、创建一个 docker 工作目录,一般选择磁盘空间较大的
mkdir -p /data/docker/data
# 4、给文件夹赋权
sudo chmod -R 777 /data/docker/data/
# 5、cp -a 可以复制文件的权限等相关属性,否则很容易因为权限无法启动
sudo cp -a /var/lib/docker/* /data/docker/data/
# 6、备份并修改 Docker 配置文件。默认情况下,Docker 使用 /etc/docker/daemon.json 配置文件。如果该文件不存在,请创建它。
sudo cp /etc/docker/daemon.json /etc/docker/daemon.json.backup
sudo vi /etc/docker/daemon.json
# 7、在 daemon.json 文件中,添加或修改 "data-root" 选项,以指向新的存储路径。例如:
{
"data-root": "/data/docker/data/"
}
# 8、重新启动 docker 服务
systemctl start docker
方法二:
# 1、查看 docker 服务是否正在运行
systemctl status docker
# 2、停止 docker 服务
systemctl stop docker
# 4、移动原 docker工作目录中的文件到/data/docker
mv /var/lib/docker /data/
# 5、将/data/docker 创建软连接到/var/lib/docker
ln -s /data/docker /var/lib/docker
# 6、重新启动 docker 服务
systemctl start docker