一篇文章搞定Centos7安装docker

博主最新再学习docker,分享一下安装的心得,同步会更新到CSDN上

  1. 环境准备

虚拟机

1台

系统版本

CentOS Linux release 7.8.2003 (Core)

内核版本

5.16.2-1.el7.elrepo.x86_64

访问外网

放通

阿里源

  1. 卸载docker

  1. 参考:

卸载 Docker :https://docs.docker.com/engine/install/centos/#uninstall-docker-engine

  1. 查看是否安装docker

 

docker info
rpm -qa | grep docker

 

  1. 卸载 Docker 引擎、CLI 和 Containerd 软件包:

 

yum remove docker-ce docker-ce-cli containerd.io 
#或者使用 rpm  -e  docker-ce docker-ce-cli containerd.io

 

  1. 手动清理删除所有映像、容器和卷:

 

#查找出docker的相关文件夹
find -name 'docker'


#rm -rf 删除这些文件夹
rm -rf /var/lib/docker
rm -rf /var/lib/containerd 

 

 

  1. 方式一:yum在线安装

  1. 更新docker相关的yum源

适用于:在线安装:适用于学习,测试,有外网的机器

 

#安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
yum install -y yum-utils device-mapper-persistent-data lvm2


#设置仓库为阿里源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
或者
wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
cp docker-ce.repo /etc/yum.repos.d


#更新源
yum clean all && yum mackecache


#检查版本
yum list docker-ce --showduplicates | sort -r
yum list docker-ce-cli --showduplicates | sort -r


#注意overlay2可能需要升级内核,它需要内核4.0以上支持:https://blog.51cto.com/daibaiyang119/2160923

 

  1. 安装:

 

#默认安装
yum install docker-ce docker-ce-cli containerd.io


#指定版本
yum install docker-ce-20.10.9-3.el7 \
docker-ce-cli-20.10.9-3.el7 \
containerd.io


#启动和查看
systemctl start docker
systemctl status docker
docker --version
docker info

 

  1. 方式二:手动下载rpm包安装

适用于生产环境或者内网环境离线安装

  1. 浏览器进入官网的下载地址,选择自己 需要的包

https://download.docker.com/linux/centos/7/x86_64/stable/Packages/

导出需要下载的地址,比如下载20版本

 

docker-ce:
    https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-20.10.0-3.el7.x86_64.rpm
docker-ce-cli:
    https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-cli-20.10.3-3.el7.x86_64.rpm
docker-ce-rootless-extras:
    https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-rootless-extras-20.10.3-3.el7.x86_64.rpm   
containerd.io:
    https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.4.9-3.1.el7.x86_64.rpm


 

  1. rpm安装和启动

需要依赖:

下载依赖后再安装:https://pkgs.org/download/

 

 

rpm -ivh *.rpm


#启动和查看
systemctl start docker
systemctl status docker
docker --version
docker info

 

 

  1. 方式三:二进制安装

二进制安装多用于企业的生产环境,安装也不复杂,生产环境可用此环境

  1. 官方文档:

https://docs.docker.com/engine/install/binaries/

https://docs.docker.com/engine/install/linux-postinstall/

  1. 创建docker用户组

 

sudo groupadd docker
sudo usermod -aG docker $USER
sudo newgrp docker

 

  1. 下载二进制安装包

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

版本:18.06-3

https://download.docker.com/linux/static/stable/x86_64/docker-18.06.3-ce.tgz

 

#下载相关的安装包,上传至/home目录
cd  /home
wget https://download.docker.com/linux/static/stable/x86_64/docker-18.06.3-ce.tgz


#解压安装包
tar -zxvf docker-18.06.3-ce.tgz
cd /home/docker


#复制命令到相关目录
cp docker* /usr/bin
cp docker* /usr/local/bin

 

  1. 修改docker默认工作目录

 

#先在/data创建docker目录 
mkdir /data/docker


方法1:使用命令/usr/bin/dockerd -g /自己想设置的目录
/usr/bin/dockerd -g /data/docker		
#--设置到/data/docker目录


方法2:在服务启动时,加上参数,使其自动运行到自己相应的目录
ExecStart=/usr/bin/dockerd -g /data/docker
或者ExecStart=/usr/bin/dockerd --data-root=/data/docker
#这个参数下面开机自启添加

 

  1. 准备两个文件daemon.json和docker.socket

  1. 添加一个daemon.json文件,添加一个镜像获取地址或者加速地址,添加私有harbor也是这里添加,后面会提到

相关参考:https://www.cnblogs.com/bulh/articles/12523099.html

 

vi /etc/docker/daemon.json
{ 
 "registry-mirrors": ["https://hub.dockerhub.docker.com"]
 }


 

  1. 添加一个docker.socket的文件,给服务监听使用

 

cat << 'EOF' > /usr/lib/systemd/system/docker.socket 
[Unit]
Description=Docker Socket for the API


[Socket]
ListenStream=/var/run/docker.sock
SocketMode=0660
SocketUser=root
SocketGroup=docker


[Install]
WantedBy=sockets.target
EOF

 

  1. 配置开机自启

创建一个在/usr/lib/systemd/system/docker.service的文件

复制参数docker.service里面:

vi /usr/lib/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
ExecStart=/usr/bin/dockerd  -H unix://var/run/docker.sock -H tcp://0.0.0.0:2375 --data-root=/data/docker
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
KillMode=process


[Install]
WantedBy=multi-user.target

 

赋予权限和重启服务:

 

chmod +x /usr/lib/systemd/system/docker.service
重启服务:
systemctl daemon-reload 
systemctl restart docker 
systemctl enable docker.service

 

  1. 配置命令补全

参考:https://www.cnblogs.com/morgan363/p/11772851.html

 

#安装补全工具
yum -y install bash-completion


#查看补全目录是否存在docker相关
ls  /usr/share/bash-completion/completions/docker*


#复制docker文件进去
由于是二进制安装,需要复制补全的文件进去,需要符合版本号
推荐去github上下载或者手动安装一个相同版本的机器上复制文件
cd /usr/share/bash-completion/completions
wget https://raw.githubusercontent.com/docker/cli/master/contrib/completion/bash/docker
#mv 改名下载文件名为docker


#使其生效
source /usr/share/bash-completion/bash_completion
source /usr/share/bash-completion/completions/docker

 

  1. 添加harbor仓库

1:修改启动服务的配置文件,添加地址

 

vim /usr/lib/systemd/system/docker.service
ExecStart= --graph /app/software --insecure-registry=hub.docker.com


 

2:在daemon.json配合地址,如果是企业自建harbor,建议把registry-mirrors和insecure-registries都设置成私有harbor地址

 

vim /etc/docker/daemon.json


{   
"registry-mirrors": ["https://hub.docker.com"]
,"insecure-registries": ["https://hub.docker.com"]
}

 

3:使用docker login 登录,输入账号密码测试验证

  1. 可选:使容器默认跟随服务启动

 

docker container update --restart=always 容器名字
#更新所有容器随服务启动
docker container update --restart always $(docker ps -a -q)

 

 

 

posted @   李宗盛  阅读(5141)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2021-03-01 Zabbix-4.0-修改管理员admin密码
2021-03-01 windows-关于windows更新机制的总结
点击右上角即可分享
微信分享提示