Docker启动Metasploitable2提示容器名mymet2已占用的原因及解决办法
问题原因
Docker 要求所有容器(包括已停止运行的容器)的名称全局唯一,你执行的创建命令通过--name mymet2指定新容器名称为mymet2,但从docker ps -a的返回结果可以确认,当前环境中已经存在一个ID为0a545a9ae45d、名称为mymet2的已退出容器,该名称已被占用,因此新容器创建时触发名称冲突报错。
解决方法
可根据你的实际需求选择以下任意一种方案:
- 无需保留旧mymet2容器数据:先执行命令删除旧容器
<|FunctionExecute|>sudo docker rm mymet2,删除完成后重新执行你原有的Metasploitable2启动命令即可。 - 需要保留旧mymet2容器:修改新容器的启动命令,将
--name参数后的名称替换为其他未被占用的名称即可,示例修改后命令:sudo docker run --name mymet3 -it tleemcjr/metasploitable2:latest sh -c "/bin/services.sh && bash" - 需要保留旧容器且坚持使用mymet2作为新容器名称:先执行命令为旧容器重命名
sudo docker rename mymet2 mymet2_old,重命名完成后再执行原启动命令即可。 - 实际需要启动原有旧mymet2容器无需新建:直接执行启动命令
sudo docker start -i mymet2即可唤醒已存在的旧容器。
内容的提问来源于stack exchange,提问作者DNet Info
相关产品推荐
相关产品推荐

