From 24191c2ebed6f9860602614945d6dcb5d216805d Mon Sep 17 00:00:00 2001 From: Baohua Yang Date: Fri, 26 Sep 2014 20:33:00 +0800 Subject: [PATCH] Modify the import of bash file --- _local/.bashrc_docker | 91 +++++++++++++++++++++---------------------- container/enter.md | 2 +- 2 files changed, 46 insertions(+), 47 deletions(-) diff --git a/_local/.bashrc_docker b/_local/.bashrc_docker index c913da3..fb4e76d 100644 --- a/_local/.bashrc_docker +++ b/_local/.bashrc_docker @@ -1,46 +1,45 @@ -# Some useful commands to use docker. -# Author: yeasy@github -# Created:2014-09-25 - -alias docker-pid="sudo docker inspect --format '{{.State.Pid}}'" -alias docker-ip="sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}'" - -#the implementation refs from https://github.com/jpetazzo/nsenter/blob/master/docker-enter -function docker-enter() { - if [ -e $(dirname "$0")/nsenter ]; then - # with boot2docker, nsenter is not in the PATH but it is in the same folder - NSENTER=$(dirname "$0")/nsenter - else - NSENTER=nsenter - fi - [ -z "$NSENTER" ] && echo "WARN Cannot find nsenter" && return - - if [ -z "$1" ]; then - echo "Usage: `basename "$0"` CONTAINER [COMMAND [ARG]...]" - echo "" - echo "Enters the Docker CONTAINER and executes the specified COMMAND." - echo "If COMMAND is not specified, runs an interactive shell in CONTAINER." - else - PID=$(sudo docker inspect --format "{{.State.Pid}}" "$1") - if [ -z "$PID" ]; then - echo "WARN Cannot find the given container" - return - fi - shift - - OPTS="--target $PID --mount --uts --ipc --net --pid" - - if [ -z "$1" ]; then - # No command given. - # Use su to clear all host environment variables except for TERM, - # initialize the environment variables HOME, SHELL, USER, LOGNAME, PATH, - # and start a login shell. - #sudo $NSENTER "$OPTS" su - root - sudo $NSENTER --target $PID --mount --uts --ipc --net --pid su - root - else - # Use env to clear all host environment variables. - sudo $NSENTER --target $PID --mount --uts --ipc --net --pid env -i $@ - fi - fi -} - +# Some useful commands to use docker. +# Author: yeasy@github +# Created:2014-09-25 + +alias docker-pid="sudo docker inspect --format '{{.State.Pid}}'" +alias docker-ip="sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}'" + +#the implementation refs from https://github.com/jpetazzo/nsenter/blob/master/docker-enter +function docker-enter() { + if [ -e $(dirname "$0")/nsenter ]; then + # with boot2docker, nsenter is not in the PATH but it is in the same folder + NSENTER=$(dirname "$0")/nsenter + else + NSENTER=nsenter + fi + [ -z "$NSENTER" ] && echo "WARN Cannot find nsenter" && return + + if [ -z "$1" ]; then + echo "Usage: `basename "$0"` CONTAINER [COMMAND [ARG]...]" + echo "" + echo "Enters the Docker CONTAINER and executes the specified COMMAND." + echo "If COMMAND is not specified, runs an interactive shell in CONTAINER." + else + PID=$(sudo docker inspect --format "{{.State.Pid}}" "$1") + if [ -z "$PID" ]; then + echo "WARN Cannot find the given container" + return + fi + shift + + OPTS="--target $PID --mount --uts --ipc --net --pid" + + if [ -z "$1" ]; then + # No command given. + # Use su to clear all host environment variables except for TERM, + # initialize the environment variables HOME, SHELL, USER, LOGNAME, PATH, + # and start a login shell. + #sudo $NSENTER "$OPTS" su - root + sudo $NSENTER --target $PID --mount --uts --ipc --net --pid su - root + else + # Use env to clear all host environment variables. + sudo $NSENTER --target $PID --mount --uts --ipc --net --pid env -i $@ + fi + fi +} diff --git a/container/enter.md b/container/enter.md index 3c97f22..4aeab09 100644 --- a/container/enter.md +++ b/container/enter.md @@ -57,7 +57,7 @@ root@243c32535da7:/# [.bashrc_docker](https://github.com/yeasy/docker_practice/raw/master/_local/.bashrc_docker),并将内容放到.bashrc中。 ``` $ wget -P ~ https://github.com/yeasy/docker_practice/raw/master/_local/.bashrc_docker; -$ echo "[ -f ~/.bashrc_docker ] && . .bashrc_docker" >> ~/.bashrc; source ~/.bashrc +$ echo "[ -f ~/.bashrc_docker ] && . ~/.bashrc_docker" >> ~/.bashrc; source ~/.bashrc ``` 这个文件中定义了很多方便使用Docker的命令,例如`docker-pid`可以获取某个容器的PID;而`docker-enter`可以进入容器或直接在容器内执行命令。 ```