Docker 报错处理

个人情况,发现站点访问不了,裸服务器,只有装一个docker ,于是想杀掉这个镜像重启康康,

杀掉镜像

docker kill  镜像名称

无奈报错:Error response from daemon: Cannot restart container xxx: driver failed programming external

解决办法,重启docker服务

systemctl restart docker 

启动

docker run --name netcore-mvc -d -p 80:80  mytest-mvc

[报错]docker: Error response from daemon: Conflict. The container name netcore-mvc

错误提示意思是, netcore-mvc已经被使用了, 就是本机内部已经有了一个名字为 myubuntu 容器, 我们可以用命令 sudo docker container ls 看下本机正在运⾏的容器, 果不其然:

[解决方法]

(1) 给容器换一个名字, 比如说 docker run --name netcore-mvc2 -d -p 80:80  mytest-mvc, 可以解决问题.

(2) 将原来的容器删除, docker container rm netcore-mvc(提示: 这一步要确定删除容器没问题的情况下, 才可以做)

附docker常用命令:

docker stop $(docker ps -a -q) //  stop停止所有容器
$ docker ps // 查看所有正在运行容器 
$ docker stop containerId // containerId 是容器的ID 
$ docker ps -a // 查看所有容器 $ docker ps -a -q // 查看所有容器ID 
$ docker stop $(docker ps -a -q) //  stop停止所有容器 
$ docker rm $(docker ps -a -q) //   remove删除所有容器

重启docker服务  sudo service docker restart

关闭docker服务  docker service docker stop

开启docker服务  docker service docker start

查看当前运行的容器:docker ps

查询存在的容器:docker ps -a

删除容器:docker -rm  CONTAINERID

强制删除容器:docker -rm -f  CONTAINERID 

不能够删除一个正在运行的容器,会报错。需要先停止容器。

查看镜像:docker images

删除镜像:docker -rmi  IMAGEID  

强制删除镜像:docker -rmi -f  IMAGEID  

利用镜像创建容器:docker run --name centos -itd centos:latest 

注:-i表示让容器的标准输入打开,-t表示分配一个伪终端,-d表示后台启动,要把-i -t -d 放到镜像名字前面,--name指定容器名。

如果使用systemctl启动服务需要用下面的方式以超级权限启动,否则会报Failed to get D-Bus connection: Operation not permitted错误:

docker run --name centos -itd --privileged=true centos:latest /usr/sbin/init

进入后台运行的容器:docker exec -it containname /bin/bash

启动容器:docker start containername

停止容器:docker stop containername

停止所有的container,这样才能够删除其中的images: docker stop $(docker ps -a -q)

如果想要删除所有container的话再加一个指令: docker rm $(docker ps -a -q)

注:-a标志列出所有容器,-q标志只列出容器的ID,然后传递给rm命令

删除全部image的:  docker rmi $(docker images -q)

重命名一个容器:docker rename old_name new_name

要获取所有容器名称及其IP地址:

docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)

【疑问】

docker: Error response from daemon: Conflict. The container name

删除容器:docker -rm  CONTAINERID    

【?????????】

正确删除命令:docker container rm netcore-mvc2

原文地址:https://www.cnblogs.com/1659666966/p/13947714.html