docker和docker-compose使用过程中的疑难杂症【踩坑合集】

一、E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable) \

E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?

(1)前情概要

在下载docker的时候需要使用apt命令更新、安装依赖包
在这里插入图片描述
(2)触发条件

apt有概率执行完命令后没有退出,而是继续在后台运行,当你再次使用apt时,可能就会报错

(3)解决办法(一):kill apt线程

  1. 查看所有apt线程的id
ps -A | grep apt
  1. 杀死相应的线程
sudo kill 线程id

解决办法(二):删除锁定文件

当运行 apt-get 或者 apt 命令时,/var/lib/apt/lists/、/var/lib/dpkg/、/var/cache/apt/archives/ 中会创建锁定文件,这有助于运行中的 apt-get 或者 apt 进程能够避免被其它需要使用相同文件的用户或者系统进程所打断。当该进程执行完毕后,锁定文件将会删除。

第一个方法中没有看到 apt-get 或者 apt 进程的情况下可能是因为进程因为某个原因被杀死了,但是锁定文件还没用被删除,手动删除锁定文件即可。

首先删除三个文件夹下的锁定文件

$ sudo rm /var/lib/dpkg/lock
$ sudo rm /var/lib/apt/lists/lock
$ sudo rm /var/cache/apt/archives/lock

然后强制重新配置软件包

$ sudo dpkg --configure -a

接下来,更新你的软件包源列表

$ sudo apt update
#或者
$ sudo apt-get update

二、You are not allowed to use Docker. You must be in the

(1)前情概要

当你安装完docker后想启动一下,试用一下相应的docker命令,可是却发现命令行报错

(2)解决办法

这是因为我们当前的登录用户不在docker的用户组里,没有权限

解法一:

添加用户到docker用户组,注意第一步一般安装docker时就默认创建了,可以直接从第二步开始,如果添加到docker用户组之后未生效可以试一下第四步

  1. 创建docker用户组
 sudo groupadd docker

sudo systemctl restart docker #重启docker
2. 应用用户加入docker用户组

sudo gpasswd -a [USER] docker    #sudo gpasswd -a ahua docker
  1. 更新用户组
newgrp docker     #更新用户组
  1. 重启docker服务
 sudo systemctl restart docker

如果没有生效可试一下切换或者退出当前账户再从新登入

su root             #切换到root用户
su ${用户}          #再切换到原来的用户

解法二:

在docker命令前添加 sudo或者直接切换到root用户

sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具

三、/usr/local/bin/docker-compose: line 1: Not: command not found

(1)前情概要

当你需要通过docker-compose去部署一个已有的项目时,需要下载dockers-compose,于是你运行命令进行下载

sudo curl -L "https://github.com/docker/compose/releases/download/v1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

可是下载完使用docker-compose --version测试时发现,报错了,而且打开对应目录下的docker-compose文件时,里面是空的,什么都没有

(2)解决办法
可以试一下换一种下载方式,重新下载

sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

上面不行的话可以试试这个

sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

别忘了增加可执行权限

sudo chmod +x /usr/local/bin/docker-compose

四、Failed to execute script docker-compose

(1)前情概要

当你已经安装好了docker-compose,准备部署项目了,你在命令行输入 docker-compose up或者docker-compose build时你突然发现,报错了

(2)解决办法

这个解决办法看起来好像有点不蠢,但是事实也许就是这样,你可能并没有启动你的docker,所以输入systemctl start docker将docker启动即可

五、Version in “./docker-compose.yml” is unsupported

(1)前情概要

下载好了,命令也有了但是还是报错了,这因为你的docker-conpose版本和项目中的docker-compose.yml中定义的版本不匹配

(2)解决办法

这个根据安装时的指导,重新下载匹配版本的docker-compose即可
在这里插入图片描述
将链接里的版本换成匹配的版本即可

 $ sudo curl -L "https://github.com/docker/compose/releases/download/v1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

别忘了增加可执行权限

sudo chmod +x /usr/local/bin/docker-compose
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值