宿主机访问操作docker方式

简介:

一、ssh访问

启动的时候需要把22端口隐射出来

docker run -t -i -d -p 8091:8080 -p 9527:22 --name tomcat4 tomcat-bases /bin/bash


二、nsenter

用来访问另一个进程的名字空间。nsenter要正常工作需要有root权限


为了连接到容器,你还需要找到容器的第一个进程的PID。


docker inspect --format "` `.`State`.`Pid `" <container-id>


通过这个PID,你就可以连接到这个容器:


nsenter --target $PID --mount --uts --ipc --net --pid


三、Docker exec与Docker attach


1、Docker attach

Docker attach可以attach到一个已经运行的容器的stdin,然后进行命令执行的动作。 但是需要注意的是,如果从这个stdin中exit,会导致容器的停止。

使用方法 docker attach 容器ID


2、Docker exec

关于-i、-t参数

可以看出只用-i时,由于没有分配伪终端,看起来像pipe执行一样。但是执行结果、命令 返回值都可以正确获取。使用-it时,则和我们平常操作console界面类似。而且也不会像attach方式因为退出,导致 整个容器退出。 这种方式可以替代ssh或者nsenter、nsinit方式,在容器内进行操作。如果只使用-t参数,则可以看到一个console窗口,但是执行命令会发现由于没有获得stdin 的输出,无法看到命令执行情况。


使用方法:docker exec -ti  容器ID BASH命令



四、脚本实例

#!/bin/sh

CONTAINER_NAME=$1

if [ ! -n "$CONTAINER_NAME" ];then

    echo "请输入即将要登录的容器名称,例如要登录容器xiaoniuapp-api,请输入:./connect.sh xiaoniuapp-api"

else

    CONTAINER_ID=`docker ps -a | grep $CONTAINER_NAME | awk '{print $1}'`

    echo "容器ID:"$CONTAINER_ID

    CONTAINER_PID=`docker inspect --format "` `.`State`.`Pid `" $CONTAINER_ID`

    echo "容器PID:"$CONTAINER_PID

    echo "开始连接容器。。。"

    nsenter --target $CONTAINER_PID --mount --uts --ipc --net --pid

fi




     本文转自aaron428 51CTO博客,原文链接http://blog.51cto.com/aaronsa/1740980:,如需转载请自行联系原作者


相关文章
|
3天前
|
Docker 容器
【Docker】掌握 Docker 镜像操作:从基础到进阶
【Docker】掌握 Docker 镜像操作:从基础到进阶
|
1天前
|
Linux Docker 容器
更改docker容器中的时间而不影响宿主机
更改docker容器中的时间而不影响宿主机
|
3天前
|
存储 安全 数据中心
【Docker 专栏】Docker 容器与宿主机的资源隔离机制
【5月更文挑战第8天】Docker容器利用Namespace和Cgroups实现资源隔离,保证CPU、内存、网络和存储的独立,提升资源利用率和系统安全性。资源隔离有助于简化应用部署与管理,但也带来资源竞争、监控管理及安全挑战。理解并善用资源隔离机制能实现更高效、安全的容器运行。随着技术进步,Docker容器资源隔离将持续优化。
【Docker 专栏】Docker 容器与宿主机的资源隔离机制
|
3天前
|
存储 关系型数据库 Linux
CentOS如何使用Docker部署Plik服务并实现公网访问本地设备上传下载文件
CentOS如何使用Docker部署Plik服务并实现公网访问本地设备上传下载文件
33 4
|
3天前
|
机器学习/深度学习 人工智能 分布式计算
人工智能平台PAI 操作报错合集之在本地构建easyrec docker镜像时遇到了无法连接docker服务如何解决
阿里云人工智能平台PAI (Platform for Artificial Intelligence) 是阿里云推出的一套全面、易用的机器学习和深度学习平台,旨在帮助企业、开发者和数据科学家快速构建、训练、部署和管理人工智能模型。在使用阿里云人工智能平台PAI进行操作时,可能会遇到各种类型的错误。以下列举了一些常见的报错情况及其可能的原因和解决方法。
|
3天前
|
数据可视化 Linux Docker
Linux系统使用Docker部署Dashy导航页服务并实现公网环境访问
Linux系统使用Docker部署Dashy导航页服务并实现公网环境访问
|
3天前
|
网络协议 Ubuntu Linux
Linux系统Docker部署StackEdit Markdown并实现公网访问本地编辑器
Linux系统Docker部署StackEdit Markdown并实现公网访问本地编辑器
|
3天前
|
应用服务中间件 Shell Linux
docker 基本用法-操作镜像
docker 基本用法-操作镜像
85 6
|
3天前
|
关系型数据库 MySQL 数据安全/隐私保护
使用docker快速搭建wordpress服务,并指定域名访问
通过以上步骤,你可以使用Docker快速搭建WordPress服务,并通过指定的域名进行访问。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
41 1
|
3天前
|
关系型数据库 MySQL Docker
Docker从容器中项目如何访问到宿主机MYSQL
Docker从容器中项目如何访问到宿主机MYSQL
190 0