出现错误:Docker 进入容器报错:failed to create runc console socket stat /tmp no such file or directory unknown

报错信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 容器正常运行
---------------- docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5609d741f890 dd3b633ccbdf "/bin/sh -c 'java ${…" 4 minutes ago Up 4 minutes bff01
f938e9ba4247 mysql "docker-entrypoint.s…" 3 months ago Up 7 weeks 0.0.0.0:3306->3306/tcp, 33060/tcp mysql01
e1cac976955d wurstmeister/kafka "start-kafka.sh" 4 months ago Up 7 weeks 0.0.0.0:9092->9092/tcp docker-env_kafka_1
14910374aa1b wurstmeister/zookeeper "/bin/sh -c '/usr/sb…" 4 months ago Up 7 weeks 22/tcp, 2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp docker-env_zookeeper_1
5493428bf64b sheepkiller/kafka-manager "./start-kafka-manag…" 4 months ago Up 7 weeks 0.0.0.0:30001->9000/tcp docker-env_kafka-manager_1
8f606693d9ba redis "docker-entrypoint.s…" 5 months ago Up 7 weeks 0.0.0.0:6379->6379/tcp redis01
----------------
----------------
# 进入容器失败
---------------- docker exec -it docker-env_zookeeper_1 bash
failed to create runc console socket: stat /tmp: no such file or directory: unknown
----------------

解决方案

在宿主机执行mkdir /tmp即可

原因分析

我之前rm -rf xxx误删了宿主机的“/tmp”目录,而进入容器是需要这个目录的。

解决过程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# 1、在上面我们可以看出,报错: /tmp

# 2、查看一下根目录 "/tmp" 确实被删除了。
---------------- ll /
total 28
drwxr-xr-x 6 root root 57 Dec 25 10:00 app
drwxr-xr-x 3 root root 44 Dec 8 15:38 bak
lrwxrwxrwx 1 root root 7 Aug 8 2018 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 Dec 2 22:26 boot
drwxr-xr-x 4 root root 30 Jan 15 16:27 data
drwxr-xr-x 19 root root 2980 Aug 7 10:19 dev
drwxr-xr-x 2 root root 4096 Jan 19 17:00 diy_script
drwxr-xr-x. 93 root root 8192 Jan 28 09:47 etc
drwxr-xr-x. 6 root root 192 Jan 11 08:48 home
lrwxrwxrwx 1 root root 7 Aug 8 2018 lib -> usr/lib
lrwxrwxrwx 1 root root 9 Aug 8 2018 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 Apr 11 2018 media
drwxr-xr-x. 2 root root 6 Apr 11 2018 mnt
drwxr-xr-x. 4 root root 34 Aug 9 18:28 opt
dr-xr-xr-x 133 root root 0 Aug 7 10:14 proc
dr-xr-x---. 16 root root 4096 Jan 28 09:57 root
drwxr-xr-x 31 root root 960 Jan 19 16:55 run
lrwxrwxrwx 1 root root 8 Aug 8 2018 sbin -> usr/sbin
lrwxrwxrwx 1 root root 29 Jan 15 16:35 script -> /data/httpd/order-bff/script/
drwxr-xr-x. 2 root root 6 Apr 11 2018 srv
dr-xr-xr-x 13 root root 0 Aug 7 10:14 sys
drwxr-xr-x. 13 root root 155 Aug 8 2018 usr
drwxr-xr-x. 21 root root 4096 Aug 10 11:19 var
# 3、查看历史命令,看看是不是自己误删了。
---------------- history | grep tmp
37 mv downloadazcopy-v10-linux.1 /tmp/
101 mv /app/index.html /tmp/
114 mv -f a aaa azcopy.tar.gz index.html index.html.1 wget /tmp/
215 mv -f /usr/bin/azcopy /tmp/
262 mv -f aaaa /tmp/
316 mv -f sfc-order-bff-core-1.0.jar /tmp/
318 mv -f nohup.out /tmp/
396 mv -f a1 /tmp/
415 mv aa /tmp/
431 mv -f aaa /tmp/
510 mv xxx.sql /tmp/
806 mv -f a /tmp/
868 mv -f where-run-task.sh /tmp/
985 rm -rf sfc-order-bff-core-1.0.jar /tmp/ ### 啊啊啊,我原本想 mv -f 的
1021 history | tmp
1022 history | grep tmp
----------------
----------------
# 4、创建 "/tmp" 目录
---------------- mkdir /tmp
---------------- ll
total 28
drwxr-xr-x 6 root root 57 Dec 25 10:00 app
drwxr-xr-x 3 root root 44 Dec 8 15:38 bak
lrwxrwxrwx 1 root root 7 Aug 8 2018 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 Dec 2 22:26 boot
drwxr-xr-x 4 root root 30 Jan 15 16:27 data
drwxr-xr-x 19 root root 2980 Aug 7 10:19 dev
drwxr-xr-x 2 root root 4096 Jan 19 17:00 diy_script
drwxr-xr-x. 93 root root 8192 Jan 28 10:02 etc
drwxr-xr-x. 6 root root 192 Jan 11 08:48 home
lrwxrwxrwx 1 root root 7 Aug 8 2018 lib -> usr/lib
lrwxrwxrwx 1 root root 9 Aug 8 2018 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 Apr 11 2018 media
drwxr-xr-x. 2 root root 6 Apr 11 2018 mnt
drwxr-xr-x. 4 root root 34 Aug 9 18:28 opt
dr-xr-xr-x 133 root root 0 Aug 7 10:14 proc
dr-xr-x---. 17 root root 4096 Jan 28 10:02 root
drwxr-xr-x 31 root root 960 Jan 19 16:55 run
lrwxrwxrwx 1 root root 8 Aug 8 2018 sbin -> usr/sbin
lrwxrwxrwx 1 root root 29 Jan 15 16:35 script -> /data/httpd/order-bff/script/
drwxr-xr-x. 2 root root 6 Apr 11 2018 srv
dr-xr-xr-x 13 root root 0 Aug 7 10:14 sys
drwxrwxrwx 2 root root 6 Jan 28 10:02 tmp
drwxr-xr-x. 13 root root 155 Aug 8 2018 usr
drwxr-xr-x. 21 root root 4096 Aug 10 11:19 var
----------------
# 5、这时脚本就可以执行了。
----------------
---------------- /diy_script/zk.sh
running:[]
todo:[]
lock:[]
----------------