docker入门实战(理论+实践)系列---进入docker的三种方式
对于运行的docker容器,我们有三种方式进入docker容器内部,但三种方式存在不同的区别,且在生成环境中,慎用进入docker的方式非常有必要
1、docker attach进入docker容器
对于运行在后台的docker容器,我们经常需要做的事情是进入到容器中,docker为我们提供了docker attach命令,通过docker attach进入mydocker容器
docker attach mydocker----语法:docker attach 镜像名字
PS:docker attach存在的问题是,当多个窗口同时attach到同一个容器时,所有的窗口都会同步的显示,假如其中的一个窗口发生阻塞时,其它的窗口也会阻塞,docker attach命令可以说是最不方便的进入后台docker容器的方法,当采用docker attach进入容器退出时,docker容器也就EXIT了,因此在生产环境中,不推荐使用docker attach
2、nsenter进入容器
采用nsenter进入容器,需要采用yum安装util-linux:yum -y install util-linux
nsenter进入容器需要通过容器的PID进入,因此要通过docker inspect找到docker运行的PID,注意:如果docker没有运行,采用docker inspect找到的PID为0
docker inspect : 获取容器/镜像的元数据。
获取docker 容器的PID可以采用format获取:d 5b4 ocker inspect --format "{{.State.pid}}" mydocker
进入docker:nsenter --target 30257 --mount --uts --ipc --net --pid
解释nsenter指令中进程id之后的参数的含义:
* –mount参数是进去到mount namespace中
* –uts参数是进入到uts namespace中
* –ipc参数是进入到System V IPC namaspace中
* –net参数是进入到network namespace中
* –pid参数是进入到pid namespace中
* –user参数是进入到user namespace中
在Linux中,最爱简单的查看指定命令参数含义的办法是在终端中输入:
$ nsenter --help #会回显所有与该命令有关的参数
$ man nsenter #能查到更加详细的使用示例和参数说明
在实际环境中可编写脚本,通过传输docker镜像的名字进入容器,脚本docker_in.sh如下
#!/bin/bash docker_in() { Docker_name=$1 Docker_pid=$(docker inspect --format "{{.State.Pid}}" $Docker_name)   38f8 ; nsenter --target $Docker_pid --mount --uts --ipc --net --pid } docker_in $1
此方法在生产环境中推荐使用
3、docker exec进入容器
docker在1.3.X版本之后还提供了一个新的命令exec用于进入容器,这种方式相对更简单一些
4、关于docker容器命令,汇总如下
- docker入门实战(理论+实践)系列--docker部署和镜像容器管理
- docker入门实战(理论+实践)系列---docker容器介绍
- Docker系列一之基础快速入门企业实战
- Docker系列一之基础快速入门企业实战
- Docker入门与实战系列:热点问题
- [52ABP实战课程系列]Docker&Ubuntu从入门到实战开课啦~
- 【实战】Docker入门实践二:Docker服务基本操作 和 测试Hello World
- 数据进入MaxCompute的N种方式,大数据实战Demo系统数据上云实践
- Docker系列一之基础快速入门企业实战
- 实战hadoop海量数据处理系列04预热篇:窗函数row_number 从理论到实践
- Docker系列一之基础快速入门企业实战
- 整理系列-20161126- Docker 技术入门与实战 摘录(高级特性待补)
- angular4、angular4.0从入门到实战 打造股票管理网站 1.子路由 2. 路由传参三种方式 3. 路由守卫
- Docker入门系列6 如何打开多个终端进入Docker容器
- 云星数据---Scala实战系列(精品版)】:Scala入门教程014-Scala实战源码-Scala函数定义与调用方式
- Docker入门系列6 如何打开多个终端进入Docker容器
- Docker系列一之基础快速入门企业实战
- Spark入门实战系列--6.SparkSQL(下)--Spark实战应用
- Ceph实战入门系列(一)——三节点Ceph集群的安装与部署
- docker实践入门之二