在bash脚本中运行docker命令会导致分段错误
这些命令如下所示:
docker运行/停止/ rm …
在terminal工作的同时在bash脚本中导致分段错误。
我比较了bash脚本和terminal之间的环境,如下所示。
2C2 <BASHOPTS = cmdhist:complete_fullquote:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath --- > BASHOPTS = cmdhist:complete_fullquote:expand_aliases:extquote:force_fignore:hostcomplete:interactive_comments:login_shell:progcomp:promptvars:sourcepath 7,8c7,8 <BASH_LINENO =([0] =“0”) <BASH_SOURCE =([0] =“./ devRun.sh”) --- > BASH_LINENO =() > BASH_SOURCE =() 10a11 > COLUMNS = 180 14a16,18 > HISTFILE = / home / me / .bash_history > HISTFILESIZE = 500 > HISTSIZE = 500 19a24 > LINES = 49 22a28 > MAILCHECK = 60 28c34,37 <PPID = 12558 --- > PIPESTATUS =([0] =“0”) > PPID = 12553 > PS1 ='[\ u @ \ h \ W] \ $' > PS2 ='>' 32,33c41,42 <SHELLOPTS = braceexpand:hashall:interactive-comments <SHLVL = 2 --- > SHELLOPTS = braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor > SHLVL = 1 42,52c51 <_ =。/ devRun.sh <dao() <{ <echo“Dao”; <docker run -dti -v / tmp / projStatic:/ var / projStatic -v $ {PWD}:/ home --restart always -p 50000:50000 --name projDev daocloud.io/silencej/python3-uwsgi-alpine-docker工人 <echo“Dao结束。” <} <docker() <{ <docker run -dti -v $ {PWD}:/ home --restart always -p 50000:50000 --name projDev owen263 / python3-uwsgi-alpine-docker sh <} --- > _ = / tmp / env.log
更新:
信息和版本:
docker版本 客户: 版本:1.13.1 API版本:1.26 Go版本:go1.7.5 Git commit:092cba3727 build于:Sun Feb 12 02:40:56 2017 OS / Arch:linux / amd64 服务器: 版本:1.13.1 API版本:1.26(最低版本1.12) Go版本:go1.7.5 Git commit:092cba3727 build于:Sun Feb 12 02:40:56 2017 OS / Arch:linux / amd64 实验:假
docker信息 容器:0 运行:0 暂停:0 停止:0 图片:1 服务器版本:1.13.1 存储驱动程序:overlay2 备份文件系统:extfs 支持d_type:true 原生叠加Diff:true logging驱动程序:json文件 Cgroup驱动程序:cgroupfs 插件: 卷:本地 networking:桥主机macvlan空覆盖 群:不活跃 运行时:runc 默认运行时:runc 初始化二进制文件:docker-init 容器版本:aa8187dbd3b7ad67d
你已经在shell中重写了docker命令,完全可能这是一个recursion定义。 从你的环境中删除这个:
docker () { docker run -dti -v ${PWD}:/home --restart always -p 50000:50000 --name projDev owen263/python3-uwsgi-alpine-docker sh }