[Docker系列·7]使用nsenter除錯Docker映象

六翁發表於2017-01-04

本文使用的環境是:搭建基於Docker的NPM私服Sinopia

獲得nsenter

如果已經存在映象壓縮包 先解壓再執行

erichan@ubuntu14_04_1-pd:~/docker-tars$ d load -i nsenter.tar
erichan@ubuntu14_04_1-pd:~/docker-tars$ d run -v /usr/local/bin:/target jpetazzo/nsenter

如果本地沒有 直接執行docker命令 從雲端下載

erichan@ubuntu14_04_1-pd:~/docker-tars$ d run -v /usr/local/bin:/target jpetazzo/nsenter
Installing nsenter to /target
Installing docker-enter to /target

除錯

獲得已經執行的容器程式號

erichan@ubuntu14_04_1-pd:~/docker-tars$ PID=$(d inspect --format {{.State.Pid}} sinopia)

sinopia 是執行中的容器程式的別名

使用nsenter進入該名字空間

erichan@ubuntu14_04_1-pd:~/docker-tars$ sudo nsenter --target $PID --mount --uts --ipc --net --pid

進入已經執行的容器中 除錯環境已經搭好

root@5b03fb519385:/# ls /opt/sinopia/
config.yaml  config_gen.js  start.sh  storage
root@5b03fb519385:/# cat /opt/sinopia/config.yaml | grep allow
# Maximum amount of users allowed to register, defaults to "+inf".
  #  allow_access: admin
  #  allow_publish: all
    # allow all users to read packages (`all` is a keyword)
    allow_access: all
    # allow `admin` to publish packages
    allow_publish: all
root@5b03fb519385:/# cat /opt/sinopia/config.yaml | grep listen
# you can specify listen address (or simply a port)
listen: 0.0.0.0:4873


相關文章