Linux安装Docker
Docker是一个轻量级容器技术,类似于虚拟机技术(Vmware等),其直接运行在当期操作系统(Linux)之上,而不是运行在虚拟机上,但是也实现了虚拟机技术的资源隔离同时性能远远高于虚拟机技术。
Docker支持将软件编译成一个镜像(image),在这个镜像里做好对软件的各种配置,然后发布这个镜像。运行中的进线称之为容器(container),容器的启动非常迅速,一般以秒为单位。有点类似安装ghost操作系统,系统安装好了软件都有了,虽然完全不是一类事,但思路是类似的。
同时必须说明,Docker并不是为开发测试方便而提供的小工具而是可以用于实际生产环境的一种几号的部署方式。简而言之,其主要是方便生产更新部署,对开发者而言可能增加工作量。
下面进入本文的主题,Linux下安装Dokcer:
1、安装前置条件:
yum install -y yum-utils device-mapper-persistent-data lvm2
2、添加docker源:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
3、添加最新版本:
yum -y install docker-ce
4、开启docker服务:
systemctl start docker
systemctl status docker
以上为CentOS8安装,更高版本的操作系统比如CentOS9Stream就不支持了——因为docker-ce目前只支持到8。怎么办呢?使用rpm文件离线安装吧,如下:
1、首先下载相应的rpm:Index of linux/centos/8/x86_64/stable/Packages/ (docker.com)
2、安装
安装过程中可能出现各种报错问题,就问题解决问题。本次安装中遇到的问题有:
1)已安装包对docker相关的rpm安装有影响,解决方法就是删除有影响的安装包再安装docker必需的rpm。例如本次安装中删除:
2)docker-ce-20.10.9-3.el8.x86_64.rpm和docker-ce-rootless-extras-20.10.9-3.el8.x86_64.rpm安装互相依赖,一起安装
注意红框中--nodeps一定带上,否则失败(操作环境实践如此)。
验证安装结果:
使用docker命令时可以发现在root用户下使用没有问题,但是在其他用户下使用会提示没有权限:
提示没有/var/run/docker.sock文件的权限。看看这个文件:
通过用户权限可知该文件lifish用户没有访问权限。怎么解决这个问题呢?一种方式就是对这个文件执行 chmod 666使得所有用户都有访问权限——对于这种方式存在安全风险(如果有安全要求);另一种方式就是给lifish添加docker组用户,这样就可以访问该文件了。添加组用户权限操作如下:
usermod -g docker lifish
使用docker命令创建镜像:
虽然失败,但是可以正常访问docker服务了。
补:copy/paste命令时换行导致命令不对,使用命令补全可以避免该情况