Docker容器如何删除一个镜像,以及创建容器中所报的错

       由于是初学者,在用docker命令pull MySQL时没有指定版本号,所以默认拉取了最新的版本,但这与实际需求不符,所以我又pull了5.7版本的,那么这时就需要删除掉最新版的MySQL,那么具体需要执行哪些命令呢。

       首先需要把正在容器中运行的MySQL服务停止:docker stop 容器id

       注意:这里是容器id(CONTAINER ID),而不是镜像id(IMAGE ID),如果输入镜像id会提示找不到此镜像。  容器id可以用docker ps -a命令查看,第一列就是

        然后删除容器。这里我刚开始用的docker rmi 镜像id 报错提示没有此镜像id。然后我又尝试docker rm 容器id

如图所示,删除成功。用命令docker ps -a查看发现容器已经不存在了。

       到这里我用命令docker images查看镜像发现,最新版的MySQL依然存在。

由此猜测刚才删除的仅仅是装载MySQL的容器,所以镜像依然要删除,再次执行docker rmi 镜像id将镜像删除。

再附一张成功删除的图片

因为镜像是采用分层存储,所以删除时,显示很多tag。

到此mysql才算彻底删除。总结:删除镜像步骤:1.停止此镜像服务2.删除存储镜像的容器3.删除指定镜像。

 

在创建容器的时候报的错,很重要!!!

第一个报错:

在执行命令docker run 时报错:WARNING: IPv4 forwarding is disabled. Networking will not work.

解决方案:

修改配置文件:

vim /usr/lib/sysctl.d/00-system.conf

添加一行: net.ipv4.ip_forward=1

接着重启网络:systemctl restart network       靠谱!

附上解决此问题的原博主:https://blog.csdn.net/ezbuy/article/details/82462952

 

 

第二个报错:

Docker容器做端口映射报错
docker: Error response from daemon: driver failed programming external connectivity on endpoint lamp3 (46b7917c940f7358948e55ec2df69a4dec2c6c7071b002bd374e8dbf0d40022c): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 86 -j DNAT --to-destination 172.17.0.2:80 ! -i docker0: iptables: No chain/target/match by that name.

原因:docker服务启动时定义的自定义链DOCKER被清除

解决方式仅需一步:重启!重启!!重启!!!

重启命令:systemctl restart network


原文链接:https://blog.csdn.net/qq_41545647/article/details/102679560

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值