问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

对于一个已有的docker容器,怎么添加运行参数

发布网友 发布时间:2022-02-27 00:56

我来回答

2个回答

热心网友 时间:2022-02-27 02:25

  从util-linux版本2.23开始,nsenter工具就包含在其中。它用来访问另一个进程的名字空间。nsenter要正常工作需要有root权限。很不幸,Ubuntu 14.4仍然使用的是util-linux版本2.20。安装最新版本的util-linux(2.24)版,请按照以下步骤:   为了连接到容器,你还需要找到容器的第一个进程的PID。   docker inspect --format "{{ .State.Pid }}" <container-id>   通过这个PID,你就可以连接到这个容器:   nsenter --target $PID --mount --uts --ipc --net --pid   nsinit   从0.9版本开始,Docker自身就具有一个管理容器的库,名字为 libcontainer。libcontainer中的nsinit工具允许用户直接访问linux名字空间和cgroup内核。在安装nsinit之前,你首先需要安装Go运行时环境:   apt-get install git golang-go mkdir -p $HOME/go-dev/binmkdir -p $HOME/go-dev/src echo "export GOPATH=\$HOME/go-dev" >> ~/.profileecho "PATH=\$PATH:\$GOPATH/bin" >> ~/.profile source ~/.profile   接下来才安装nsinit:   mkdir -p $GOPATH/src/github.com/dotcloudcd $GOPATH/src/github.com/dotcloud git clone https://github.com/dotcloud/docker.gitcd $GOPATH/src/github.com/dotcloud/docker /usr/bin/go get -v github.com/dotcloud/docker/vendor/src/github.com/docker/libcontainer/nsinit   nsinit读取的是位于/var/lib/docer/execdriver/native/<container-id>容器目录下的配置数据。要运行nsinit,你需要切换到容器目录下。由于/var/lib/docker目录对于root用户是只读权限,因此你还需要root权限。通过docker的ps命令,你可以确定容器ID。一旦你进入/var/lib/docker目录,你就可以连接容器了:   nsinit exec /bin/bash         lxc(-attach)   直到Docker 0.8.1版本为止,LXC一直是管理容器的基本工具,Docker一直支持这个工具。但是从0.9.0版本开始,Docker默认使用libcontainer管理容器,不再依赖LXC了。因此默认情况下,你不能使用lxc-attach了。   如果你仍然希望使用lxc-attach,那么你需要使用-e lxc选项来重新启动Docker服务进程。使用这个选项,Docker的内部将再次使用LXC管理容器了。完成这个任务最简单的做法就是创建/etc/default/docker文件(如果这个文件仍然不存在),并添加以下内容:   DOCKER_OPTS=" -e lxc"   现在你可以重新启动Docker服务了。要连接容器,你需要知道完整的容器ID:   docker ps --no-trunc   接下来,你就可以连接这个容器了。要完成下面工作,你还需要root权限:   lxc-attach -n <container-id> -- /bin/bash            sshd   上面所有三种方法都要求具有主机系统的root权限。为了不采用root权限,通过ssh访问容器将是一个很好的选择。   要做到这一点,你需要构建一个支持SSH服务的基础映像。此时,我们可能遇到这样的问题:我们是不是用Docker CMD或者ENTRYPOINT运行一条命令就可以了?如果此时有sshd进程运行,那么我们就不要再运行其他进程了。接下来的工作是创建一个脚本或者使用像supervisord这样的进程管理工具来启动其它所有需要启动的进程。有关如何使用supervisord的 优秀的文档可以在Docker的web站点上找到。一旦你启动了具有sshd进程的容器,你就可以像以往一样通过ssh客户端了连接这个容器了。   

热心网友 时间:2022-02-27 03:43

可以使用docker container update<容器id> 命令来添加参数。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
啤酒肚能减下去吗 一个礼拜怎么减掉啤酒肚 Win10桌面便签小工具怎么添加?一招轻松搞定! win10好用的桌面便签 手机便签APP哪个好用 桌面便签备忘录怎么添加设置? 郑州科技学院王牌专业排名一览表 跳用英语怎么说你知道该如何正确使用吗? jump基本要点 郑州科技学院视觉传达怎么样 郑州科技学院报的视觉传达专业,进入大学后能转专业么 Docker中如何定制运行容器镜像 docker容器内运行的进程,容器外也运行? docker怎么用镜像启动容器 如何在docker容器中运行一个程序 我用手机开通的优酷会员,该怎样用手机取消自动续费呢?我是联通手机 中国移动流量费超出被扣500元,有什么办法吗. 中国移动流量套餐超出扣钱怎么办 手机流量超了欠费,怎么补救? 移动流量用超了 已欠费300+ 怎么补救 苹果手机怎么去除图标上的红点? iphone怎么消除设置的红点 我朋友流量用超了,扣了几十话费,怎么补救?移动。。。 移动手机流量用超了,扣了一百多块,怎么办 京东京东金条订单在哪里看 移动流量超过扣的话费怎么要回来?求大师帮忙 流量超太多扣了很多话费,怎么补回来,移动流量超出 哦请问一下我的健康宝不小心的小程序删掉了怎么能找回来呢_问一问 请问大家:微信中的小程序没有了,怎么找回? 中国移动流量费超出被扣好几百怎么办???? 移动流量超出很多怎么办? docker 怎么把宿主机的文件拷贝到运行的容器中 如何在Docker容器中运行Metasploit 我用的Windows下的docker,运行了一个容器,怎么在Windows下访问容器 柚子皮怎么做不会苦 快手直播伴侣投屏直播选择电脑麦克风录音 直播间听不到游戏声音 怎么弄? 柚子皮怎么加工才好吃,而且不苦 怎么除去柚子皮苦味 为什么柚子皮那么苦 柚子糖怎么做才不苦 煲汤加柚子皮多了发苦怎么办 怎么做蜂蜜柚子茶不苦 红米微信怎么查找以前用过己经删除忘记名子的小程序两年前用过? 柚子太酸了,又不舍得丢怎么吃? 柚子皮可以吃吗?? 怎么处理柚子皮 京东手机客户端怎么查看自己支持的京东众筹? stp怎么打开 cad如何打开stp 抖音如何清除自己的喜欢? 如何清除抖音里的我喜欢