前言:本文建立在服务器中已经存在docker环境的基础上,总结了安装docker-compose过程,以及安装过程中遇到的问题和解决方案。
一、下载docker-compose
在网上找了两种,一种是github官方的,一种是国内的镜像
gitbub官方
curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
国内镜像
curl -L https://get.daocloud.io/docker/compose/releases/download/v2.4.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
我第一次使用了国内镜像,但是安装完成后,出现下面的报错:
/usr/local/bin/docker-compose: line 1: html: No such file or directory
/usr/local/bin/docker-compose: line 2: syntax error near unexpected token `<'
'usr/local/bin/docker-compose: line 2: `<head><title>503 Service Temporarily Unavailable</title></head>
国内镜像虽然快,但是好像是不全,最终我还是选择了github的镜像,虽然下载了很长时间,也失败了很多次,但是功夫不负有心人,多执行几遍就可以,总会有一次成功的。
二、给文件可执行权限
chmod +x /usr/local/bin/docker-compose
三、在默认目录增加一个软连接
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
四、检测是否安装成功
docker-compose version
五、将用户添加到docker组中
usermod -aG docker username
六、更新用户组
newgrp docker
遇到的问题:
当我准备就绪,安装好后,登录到我准备使用的用户中时,执行了一下docker-compose ps命令,出现了下面的报错:
docker.errors.DockerException: Error while fetching server API version: ('Connection aborted.', PermissionError(13, 'Permission denied'))
提示我docker权限不足,使用docker ps命令查看后报错如下:
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.26/containers/json: dial unix /var/run/docker.sock: connect: permission denied
分析是我对/var/run/docker.sock文件的操作权限不足。查看/var/run/docker.sock的权限,发现其他用户对该文件没有任何权限。
[username@vm-16-47-centos develop]$ ll /var/run/docker.sock
srw-rw---- 1 root root 0 Aug 14 10:50 /var/run/docker.sock
执行命令,增加其他用户对文件的读写权限
chmod o+rw /var/run/docker.sock
这个时候再看一下/var/run/docker.sock文件的权限,已经可以访
[username@vm-16-47-centos develop]$ ll /var/run/docker.sock
srw-rw-rw- 1 root root 0 Aug 14 10:50 /var/run/docker.sock
这个时候执行docker ps命令就已经能执行啦!