进入docker容器并执行命令的的3中方法
进入docker容器并执行命令的的3中方法
- docker exec
- nsenter
- docker attach "container"
建议使用nsenter, exec有时候会有问题。 attach执行完之后会自动退出
exec需要在运行中的容器中执行:
nsenter需要安装,默认最小安装里面有,yum -y install util-linux

attach需要是启动的容器,退出的需要使用start先启动- docker
start CONTAINER(使用attach进入容器后退出后容器会退出)
[root@docker01 ~]# docker --help|grep exec
exec Run a command in a running container
[root@docker01 ~]# docker ps
CONTAINER ID
IMAGE COMMAND CREATED STATUS PORTS NAMES
9218c822d3a5
docker.io/centos
"/bin/bash"
11 hours ago Up 11 hours cent03
e4d5b979923b
docker.io/centos
"bash"
21 hours ago Up 11
hours cent02
fe7ab7cd9ec0
bash
"docker-entrypoint..."
21 hours ago Up 12 hours cent01
216dc5feb799 8b89e48b5f15
"/bin/bash" 21 hours ago Up 12 hours
80/tcp nginx02
[root@docker01 ~]# docker exec cent01 route
Kernel IP routing table
Destination
Gateway Genmask Flags Metric Ref Use Iface
default
172.17.0.1 0.0.0.0 UG
0 0 0 eth0
172.17.0.0
* 255.255.0.0 U
0 0 0 eth0
[root@docker01 ~]#
[root@docker01 scripts]# rpm -ql util-linux|grep
nsenter
/usr/bin/nsenter
/usr/share/bash-completion/completions/nsenter
/usr/share/man/man1/nsenter.1.gz
[root@docker01 scripts]# rpm -ql util-linux|grep
nsenter
exec直接进入bash的方法:
[root@docker01 work]# docker exec -it cent02
/bin/bash
[root@e4d5b979923b /]# cat /etc/hosts
127.0.0.1
localhost
::1
localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.4
e4d5b979923b
直接去下载了httpd的容器并启动80端口的httpd服务。
[root@docker01 scripts]# docker run -d -p 83:80
--name cent_80 httpd
Unable to find image 'httpd:latest' locally
Trying to pull repository docker.io/library/httpd ...
latest: Pulling from docker.io/library/httpd
d660b1f15b9b: Pull complete
aa1c79a2fa37: Pull complete
f5f6514c0aff: Pull complete
676d3dd26040: Pull complete
4fdddf845a1b: Pull complete
28ecdadc5f88: Pull complete
5d882098e42b: Pull complete
Digest:
sha256:2edbf09d0dbdf2a3e21e4cb52f3385ad916c01dc2528868bc3499111cc54e937
Status: Downloaded newer image for
docker.io/httpd:latest
c720d0aa41860f2d88cd652f395d52279f0a485b7852da5d7fce4627ac7ef816
[root@docker01 scripts]# curl 10.0.0.181:83
<html><body><h1>It works!</h1></body></html>
进入docker容器并执行命令的的3中方法的更多相关文章
- docker镜像、docker容器导入导出命令
一.docker镜像导入导出命令 导出命令: docker save -o <保存路径> <镜像名称:标签> docker save -o ./test.tar test:la ...
- WORKDIR 指定工作目录 每一个 RUN 都是启动一个容器、执行命令、然后提交存储层文件变更
WORKDIR 指定工作目录 格式为 WORKDIR <工作目录路径>. 使用 WORKDIR 指令可以来指定工作目录(或者称为当前目录),以后各层的当前目录就被改为指定的目录,如该目录不 ...
- docker 容器管理常用命令
Docker 容器管理: docker create -it centos //这样可以创建一个容器,但该容器并没有启动: create Create a new container 创建一个容器: ...
- Docker容器技术-基础命令
一.基础命令 1.运行一个镜像 [root@bogon ~]# docker run debian echo "Hello World" Unable to find image ...
- linux中docker容器安装vi命令详解
在使用docker容器时,同时你docker里的系统正好是debian或ubuntu的时候,有时候里边没有安装vim,敲vim命令时提示说:vim: command not found,这个时候就需要 ...
- XP_CMDSHELL 执行命令添加 windows 用户的方法
1. 之前看过不少文档 可以使用 xp_SQLCMD的命令来进行渗透处理, 今天因为公司的服务器又中毒了 自己学习了下. 2. 修改SQLSERVER的设置 远程登录数据库 sqlcmd -S 10. ...
- docker进入容器内部执行命令
[root@bogon ~]# docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 38a2cae4c32f jenk ...
- docker 容器使用 systemctl 命令是报错
看了许多解决方案,但是对于新手来说并不友好,不是特别清楚 报错内容: System has not been booted with systemd as init system (PID 1). C ...
- Docker容器操作中常用命令集合
docker pull 从仓库获取所需要的镜像 docker images 显示本地已有的镜像. docker commit 提交更新后的副本. docker build 创建一个新的镜像 ADD 复 ...
随机推荐
- Python Unittest - 根据不同测试环境跳过用例详解
本文章会讲述以下几个内容: 1.Unittest 如何跳过用例 2.如何使用sys.argv 3.自动化测试项目中如何一套代码多套环境运行 一.Unittest跳过用例 @unittest.skip( ...
- mycat分片规则之分片枚举(sharding-by-intinfile)
mycat分片规则之分片枚举(sharding-by-intinfile) http://blog.51cto.com/goome/2058959 mycat安装及分片初体验 https://blog ...
- 如何直接修改cf,of等标志位的值?
如何直接修改 cf,of 等 标志寄存器位的值? 我记得在哪个教程里见过,但是不太记得了… 貌似是在yjx驱动教程里面… 我想弄这个的原因是想验证 网上查到的 各种跳转语句(ja,jl,jg等) 需要 ...
- 27 个Jupyter Notebook的小提示与技巧
不多说,直接上干货! 见 http://liuchengxu.org/pelican-blog/jupyter-notebook-tips.html
- No lease on /目录: File does not exist. [Lease. Holder: DFSClient_NONMAPREDUCE_-2059237550_1, pendingcreates: 8]错误及解决方法
感觉程序员的世界真是一个变幻无常且精彩绝伦的世界,每次跑程序都会发现不一样的问题.今天跑MapReduce程序来统计邮箱次数时遇到了一个问题,明明一样的代码,别人能跑,我却跑不了.我相信,基本做这行的 ...
- {ldelim},{rdelim} - smarty 内建函数
{ldelim}和{rdelim}用来转义模板的分隔符,缺省为{和}.你也可以用{literal}{/literal}来转义文本块(如Javascript或CSS). 例: {* 在模板外将原样打印分 ...
- JDBC让java程序连上数据库(mysql数据库)
一.小论异常: 其实JDK已经提供了一组API让java程序连上数据库,并执行SQL语句,其实说起来也蛮简单的,但是绝对是一个细致活,因为稍不留神,异常就铺天盖地的来了,下面说说这些异常吧(声明一下: ...
- 【Java】深入理解Java中的spi机制
深入理解Java中的spi机制 SPI全名为Service Provider Interface是JDK内置的一种服务提供发现机制,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来启用 ...
- 关于echarts和jqeury的结合使用问题
今天在工作上遇到了一个小问题,就是自己在用echarts渲染了一个柱状图,然后点击其他位置,将渲染echart的div进行了清空,这里我所有的echart图形都是在同一个div中渲染的,然后当再次要求 ...
- Oracle Business Intelligence Enterprise Edition 12.2.1.2.0 Books
Oracle Business Intelligence Enterprise Edition 12.2.1.2.0 Books Documentation for Oracle Business I ...