
/bin/bash是Linux的一种常用shell脚本,用于解释执行Linux命令,根据镜像支持的shell的不同,可以使用不同的的shell脚本。
所以结合起来我们知道这个命令是用于在支持/bin/bash脚本的容器中执行相应命令。
例如: 执行docker exec -it ubuntu /bin/bash 就会进入ubuntu容器的/bin/bash脚本执行模式,这时候就相当于登录到容器内部,可以通过shell和这个容器即ubuntu交互,可以执行各种Linux命令了
docker添加挂载目录:先在docker容器里创建目录/import
1.关闭docker
2.sudo su切换到root身份,cd /var/lib/docker/containers/容器id/,进入对应容器目录
3.vi hostconfig.json,修改如下,将容器目录/import绑定到主机/data目录:
4.vi config.v2.json,修改如下,添加MountPoints:
5.启动docker
最后docker ecec -it 容器id /bin/bash进入ls -l /就可以看见import目录
添加端口在这个文件hostconfig.json
首先输入
可以看到我当前的名叫mynginx容器只打开了80端口
在给mynginx容器添加上这条命令:
来设置重启docker之后自动启动该容器。设置完成后再修改hostconfig.json文件中的"PortBindings"就行。
然后停止容器systemctl stop docker
然后进入到该容器的hostconfig.json文件中,增加一个8000的端口
保存后退出
再次启动docker容器systemctl start docker
输入docker ps -a查看
发现已经增加了8000端口
若想要增加容器端口,则需要把config.v2.json中的ExposedPorts也加上你想添加的端口号
docker run指定的命令如果不是那些一直挂起的命令(比如运行top,不断echo),就是会自动退出的。-d命令是设置detach为true,根据官方的文档,意思是让这个命令在后台运行,但并不是一直运行(我们在一个正常的Linux Terminal中运行/bin/bash,运行完了也就完了,不会一直挂着等待响应的,所以确实没办法用daemon方式来跑/bin/bash)。这个地方官方早期和现在的文档也确实有些前后不一致,现在是detach,早期的文档说指定-d以daemon方式来运行容器,可能存在一定的误解。
另外,如果你需要跑容器里的bash,直接运行docker run -i -t CONTAINER_NAME /bin/bash 就可以了,如果觉得参数比docker attach多,可以设置一个别名(alias)来解决:
alias dockerbash='docker run -i -t CONTAINER_ID /bin/bash'
设置好别名后,直接运行dockerbash就可以进入容器的bash了。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)