由于是初学者,在用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