Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
一、 yum源安装docker
1、通过 $ uname -r
命令查看你当前的内核版本
2、使用 root 权限登录 Centos。确保 yum 包更新到最新。
检查自己的liunx里面是否有docker镜像
$ rpm -qa|grep docker
更新yum源
$ sudo yum update
3、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
4、设置yum源
阿里镜像
$ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
官网
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
清华大学开源镜像库
$ sudo yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce
5、可以查看所有仓库中所有docker版本,并选择特定版本安装
$ yum list docker-ce --showduplicates | sort -r
6、安装docker
$ sudo yum install docker-ce #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0
$ sudo yum install <FQPN> # 例如:sudo yum install docker-ce-17.12.0.ce
7、启动并加入开机启动
启动
$ sudo systemctl start docker
开机启动
$ sudo systemctl enable docker
8、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
$ docker version
9、卸载docker
删除安装包
yum remove docker-ce
删除镜像、容器、配置文件等
rm -rf /var/lib/docker
二、 离线 安装
主要是解决内网主机收束外网的访问权限,减少攻击面,先在能上网的机器上做离线安装包
(1)
下载安装包
yumdownloader --resolve docker-ce docker-ce-cli containerd.io
打包下载的安装包
tar -cvzf docker-ce.offline.tar *.rpm
上传到离线的主机上后解压
tar -xvzf docker-ce.offline.tar
安装docker
sudo rpm -ivh --replacefiles --replacepkgs *.rpm
启动docker
sudo systemctl start docker
添加自己为docker组用户
sudo usermod -aG docker $USER
(2)
在https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/里面找这个docker-ce.repo文件
把下载好的docker-ce
文件粘贴到/etc/yum.repos.d
docker-ce默认放置路径为/etc/yum.repos.d
执行安装即可
yum install docker-ce
三、 docker 使用
Docker镜像源修改
修改或新增 /etc/docker/daemon.json
进入配置文件
vim /etc/docker/daemon.json
修改或添加
{"registry-mirrors": [
"http://hub-mirror.c.163.com",
"https://y0qd3iq.mirror.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com"
]
}
重启docker
systemctl restart docker.service
查看是否修改成功
docker info
启动、重启和关闭
sudo service docker start #启动docker centos6.x的命令
sudo service docker restart #重启docker centos6.x的命令
sudo service docker stop #关闭docker centos6.x的命令
systemctl start docker #启动docker服务
systemctl stop docker #停止docker服务
systemctl restart docker #重启docker服务
sudo systemctl start docker #启动docker centos7.x 命令
sudo systemctl restart docker #重启docker centos7.x 命令
sudo systemctl stop docker #关闭docker centos7.x 命令
systemctl status docker #查看docker服务
docker images #查看镜像文件
docker ps #查看运行的容器
docker start名称或者ID号 #开启容器
docker stop 名称或者ID号 #关闭容器
docker start $(docker ps -a | awk '{ print $1}' | tail -n +2) #启动所有docker容器
docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2) #关闭所有的容器命令
docker rmi ID号 #删除镜像
doeker rm 容器id #删除容器
docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2) #docker中 删除所有的镜像
docker container prune #docker中 删除所有的容器命令
docker rmi $(docker images | awk '{print $3}' |tail -n +2) #docker中 删除所有的镜像
查看容器启动日志
docker logs -f -t --tail 10 smartbus #实时查看docker容器名为smartbus的最后10行日志
docker logs -f -t --since="2020-08-06" --tail=100 smartbus #查看指定时间后的日志,只显示最后100行
docker logs --since 30m smartbus #查看最近30分钟的日志
docker logs -t --since="2020-08-06T13:13:13" smartbus #查看某时间之后的日志
docker logs -t --since="2020-08-01T13:13:13" --until "2020-08-06 13:13:13" smartbus #查看某时间段的日志
docker logs -f -t --since="2020-08-01" smartbus | grep error >>logs_error.txt #将错误日志写入文件
「⚠️」 tail -n +2 表示从第二行开始读取
**四、Docker镜像以及Docker源地址
docker 官网
https://download.docker.com
https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
网易开源镜像库
http://mirrors.163.com/centos/7/os/x86_64/Packages/
阿里云镜像源
https://developer.aliyun.com/mirror/
清华大学开源镜像库
https://mirrors.tuna.tsinghua.edu.cn/docker-ce
https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/
中国科技大学Docker源
https://docker.mirrors.ustc.edu.cn
Docker中国
https://registry.docker-cn.com
网易Docker源
http://hub-mirror.c.163.com
ustc Docker源
https://docker.mirrors.ustc.edu.cn
**五、问题
2020.5.9
之前已经安装过旧版本的docker,在安装的时卸载旧版本(如果安装过旧版本的话)**
卸载
$ sudo yum remove docker docker-common docker-selinux docker-engine
再次安装docker
$ sudo yum install docker-ce
ok,这就已经安装完成了!
——————————————————————————
2020-07-16 更新docker 针对所有容器的使用方法
设置docker 内容器自启
docker update --restart=always xxx(容器名)
——————————————————————————
2022.4.11 更新
使用yum时候报错
Loaded plugins: fastestmirror, langpacks
Existing lock /var/run/yum.pid: another copy is running as pid 402351.
Another app is currently holding the yum lock; waiting for it to exit...
The other application is: yum
Memory : 26 M RSS (419 MB VSZ)
Started: Mon Apr 11 14:47:58 2022 - 19:13 ago
State : Traced/Stopped, pid: 402351
停止yum进程
[root@localhost ~]# rm -f /var/run/yum.pid
yum自动更新机制自动激活了yum进程,用下面的命令停止自动更新:
[root@localhost ~]# /etc/init.d/yum-updatesd stop
如果我们不需要自动更新服务,可以直接删除它。
yum remove yum-updatesd
以后的更新手动执行。
yum update
——————————————————————————
2022.4.12 docker启动失败记录问题及解决方案
linux的内核中的SELinux不支持 overlay2 graph driver
可以在docker里禁用selinux,设置参数–selinux-enabled=false
编辑/etc/sysconfig/docker
vi /etc/sysconfig/docker
把
OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false'
修改为
OPTIONS='--selinux-enabled=false --log-driver=journald --signature-verification=false'
启动服务
systemctl start docker.service
欢迎点赞、关注和评论哦!
如果你也是技术宅,如果你也对技术渴望提升,那么我们是同一类人,欢迎大家关注我的个人公众号,我们一起进步吧!