Docker相关

警告
本文最后更新于 2021-05-23,文中内容可能已过时。

如下是详细错误内容,我猜你的跟我的应该一毛一样:

$ docker-compose up

ERROR: Couldn’t connect to Docker daemon at http+docker://localunixsocket - is it running?

If it’s at a non-standard location, specify the URL with the DOCKER_HOST environment variable.

导致这个问题的原因实在多,所以把解决方法一一列出。

  1. docker服务没启动,那就启动
1
2
$ sudo systemctl start docker     // 或者 sudo service docker start
$ docker-compose up
  1. docker服务启动了,但是一些缓存影响了,那就重启
1
2
$ sudo systemctl restart docker   // 或者 sudo service docker restart
$ docker-compose up
  1. 当前用户不在docker用户组

那就把自己加到docker用户组

1
2
$ sudo gpasswd -a ${USER} docker
$ docker-compose up

添加到docker用户组后要重新登录shell再up。

  1. 也许用sudo可能有效
1
$ sudo docker-compose up
  1. docker-compose版本太老了

那就更新版本

1
2
3
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ docker-compose up
  1. 重启系统吧
1
2
$ sudo reboot
$ docker-compose up

https://www.awaimai.com/2587.html

列出所有容器ID

1
docker ps -aq

查看所有运行或者不运行容器

1
docker ps -a

停止所有的container(容器),这样才能够删除其中的images:

1
docker stop $(docker ps -a -q) 或者 docker stop $(docker ps -aq) 

如果想要删除所有container(容器)的话再加一个指令:

1
docker rm $(docker ps -a -q) 或者 docker rm $(docker ps -aq) 

查看当前有些什么images

1
docker images

删除images(镜像),通过image的id来指定删除谁

1
docker rmi <image id>

想要删除untagged images,也就是那些id为的image的话可以用

1
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")

要删除全部image(镜像)的话

1
docker rmi $(docker images -q)

强制删除全部image的话

1
docker rmi -f $(docker images -q)

从容器到宿主机复制

1
2
 docker cp tomcat:/webapps/js/text.js /home/admin
 docker  cp 容器名:  容器路径       宿主机路径         

从宿主机到容器复制

1
2
 docker cp /home/admin/text.js tomcat:/webapps/js
 docker cp 宿主路径中文件      容器名  容器路径   

删除所有停止的容器

1
docker container prune

删除所有不使用的镜像

1
docker image prune --force --all或者docker image prune -f -a

停止、启动、杀死、重启一个容器

1
2
3
4
docker stop Name或者ID  
docker start Name或者ID  
docker kill Name或者ID  
docker restart name或者ID

docker进入容器,查看配置文件

1
2
3
4
5
docker exec :在运行的容器中执行命令
        -d :分离模式: 在后台运行
        -i :即使没有附加也保持STDIN(标准输入) 打开,以交互模式运行容器,通常与 -t 同时使用;
        -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
docker exec -it  f94d2c317477 /bin/bash

出现root@f94d2c317477:/usr/share/elasticsearch/config# vi elasticsearch.yml bash: vi: command not found

1
apt-get update && apt-get install vim -y

修改配置、退出容器

1
2
3
4
1、如果要正常退出不关闭容器,请按Ctrl+P+Q进行退出容器
2、如果使用exit退出,那么在退出之后会关闭容器,可以使用下面的流程进行恢复
使用docker restart命令重启容器
使用docker attach命令进入容器

docker启动命令,docker重启命令,docker关闭命令

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
启动        systemctl start docker

守护进程重启   sudo systemctl daemon-reload

重启docker服务   systemctl restart  docker

重启docker服务  sudo service docker restart

关闭docker service docker stop

关闭docker systemctl stop docker
0%