问题

[root@cen76-1 ~]# cat docker_in.sh 
#!/bin/bash

# Use nsenter to access docker

docker_in(){

NAME_ID=$1

PID=$(docker inspect --format "{{ .State.Pid }}" $NAME_ID)

nsenter --target $PID --mount --uts --ipc --net --pid 

}

docker_in $1

[root@cen76-1 _data]# bash /root/docker_in.sh nginx-volume-test1
mesg: ttyname failed: No such device

解决办法

  • 解决方法是在 nsenter 指令后面指定一个执行的shell 如:/bin/bash 
[root@cen76-1 ~]# cat docker_in.sh 
#!/bin/bash

# Use nsenter to access docker

docker_in(){

NAME_ID=$1

PID=$(docker inspect --format "{{ .State.Pid }}" $NAME_ID)

nsenter --target $PID --mount --uts --ipc --net --pid /bin/bash

}

docker_in $1

[root@cen76-1 ~]# ./docker_in.sh nginx-volume-test1
root@50541bd1e322:/# 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐