docker 容器进入

Docker attach

Docker提供了docker attach的命令,用来让我们进入已经启动的容器(如果容器已经终止,你需要使用docker start将它启动。
			命令:docker attach mydocker

nsenter进入容器

nsenter命令被包含在util-linux软件包里面,使用nsenter可以访问另一个进程的名字空间,大多数Linux发行版默认包含了该软件,CentOS默认是有的。如果你的系统里面没有可以使用以下命令进行安装:

Yum安装:

	yum install -y util-linux

连接方式如下

[root@linux-node1 ~]# PID=$(docker inspect --format "{{ .State.Pid }}" mydocker)
[root@linux-node1 ~]# echo $PID
8029

注意如果你的PID变量为0,说明mydocker容器没有启动

连接: sudo nsenter --target $PID --mount --uts --ipc --net --pid

				root@1ca64ab83b0e /]# ps -ef 
				UID        PID  PPID  C STIME TTY          TIME CMD
				root         1     0  0 08:44 pts/0    00:00:00 /bin/bash
				root        14     0  0 09:01 ?        00:00:00 -bash
				root        27    14  0 09:01 ?        00:00:00 ps -ef
				[root@1ca64ab83b0e /]# 
				[root@1ca64ab83b0e /]# 
				[root@1ca64ab83b0e /]# 
				[root@1ca64ab83b0e /]# exit

脚本 docker_in.sh(./docker_in.sh docker_names)

			#!/bin/bash
			#Use nsenter to access docker
			docker_in(){
			NAME_ID=$1
			PID=$(docker inspect --format "{{ .State.Pid }}" $NAME_ID)
			nsenter --target $PID --mount --uts --ipc --net --pid
			}
			docker_in $1

不进入容器执行命令

或许你的本意不是想进去容器,而是想让容器执行一个命令,docker提供了exec,使用exec可以在容器内运行命令。
			docker exec mydocker whoami
使用exec进入容器
			docker exec -it mydocker /bin/bash
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值