Docker容器进入的4种方式

这篇具有很好参考价值的文章主要介绍了Docker容器进入的4种方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Docker容器进入的4种方式

Docker容器进入的4种方式

在使用Docker创建了容器之后,大家比较关心的就是如何进入该容器了,其实进入Docker容器有好几多种方式,这里我们就讲一下常用的几种进入Docker容器的方法。

进入Docker容器比较常见的几种做法如下:

  • 使用docker attach
  • 使用SSH
  • 使用insenter
  • 使用exec

一、使用docker attach进入Docker容器

Docker提供了attach命令来进入Docker容器。

接下来我们创建一个守护态的Docker容器,然后使用docker attach命令进入该容器。

  1. $ sudo docker run -itd ubuntu:14.04 /bin/bash

然后我们使用docker ps查看到该容器信息,接下来就使用docker attach进入该容器

  1. $ sudo docker attach 44fc0f0582d9

可以看到我们已经进入到该容器中了。
  docker进入容器,docker,linux,运维

但在,使用该命令有一个问题。当多个窗口同时使用该命令进入该容器时,所有的窗口都会同步显示。如果有一个窗口阻塞了,那么其他窗口也无法再进行操作。

因为这个原因,所以docker attach命令不太适合于生产环境,平时自己开发应用时可以使用该命令。

二、使用SSH进入Docker容器

在生产环境中排除了使用docker attach命令进入容器之后,相信大家第一个想到的就是ssh。在镜像(或容器)中安装SSH Server,这样就能保证多人进入

容器且相互之间不受干扰了,相信大家在当前的生产环境中(没有使用Docker的情况)也是这样做的。但是使用了Docker容器之后不建议使用ssh进入到Docker容器内。

请参考如下文章:

SSH into a Docker Container

但是不推荐
docker进入容器,docker,linux,运维

三、使用nsenter进入Docker容器

在上面两种方式都不适合的情况下,还有一种比较方便的方法,即使用nsenter进入Docker容器。关于什么是nsenter请参考如下文章:

https://github.com/jpetazzo/nsenter

在了解了什么是nsenter之后,系统默认将我们需要的nsenter安装到主机中

如果没有安装的话,按下面步骤安装即可(注意是主机而非容器或镜像)

具体的安装命令如下:

docker run --rm jpetazzo/nsenter cat /nsenter > /tmp/nsenter && chmod +x /tmp/nsenter

安装好nsenter之后可以查看一下该命令的使用。

docker进入容器,docker,linux,运维

insenter可以访问另一个进程的名称空间。所以为了连接到某个容器我们还需要获取该容器的第一个进程的PID。可以使用docker inspect命令来拿到该PID。

docker inspect命令使用如下:

  1. $ sudo docker inspect --help

inspect命令可以分层级显示一个镜像或容器的信息。比如我们当前有一个正在运行的容器

docker进入容器,docker,linux,运维

可以使用docker inspect来查看该容器的详细信息。

  1. $ sudo docker inspect 44fc0f0582d9

docker进入容器,docker,linux,运维

由其该信息非常多,此处只截取了其中一部分进行展示。如果要显示该容器第一个进行的PID可以使用如下方式

  1. $ sudo docker inspect -f {{.State.Pid}} 44fc0f0582d9

docker进入容器,docker,linux,运维

在拿到该进程PID之后我们就可以使用nsenter命令访问该容器了。

PID=$(docker inspect --format {{.State.Pid}} <container_name_or_ID>)

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

其中的3326即刚才拿到的进程的PID

四、使用docker exec进入Docker容器

除了上面几种做法之外,docker在1.3.X版本之后还提供了一个新的命令exec用于进入容器,这种方式相对更简单一些,下面我们来看一下该命令的使用:

  1. $ sudo docker exec --help

docker进入容器,docker,linux,运维

接下来我们使用该命令进入一个已经在运行的容器文章来源地址https://www.toymoban.com/news/detail-541027.html

  1. $ sudo docker ps
  2. $ sudo docker exec --help

docker进入容器,docker,linux,运维

接下来我们使用该命令进入一个已经在运行的容器

  1. $ sudo docker ps
  2. $ sudo docker exec -it 775c7c9ee1e1 /bin/bash

到了这里,关于Docker容器进入的4种方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Docker 】Docker 客户端,容器使用,启动容器,启动已停止运行的容器,停止一个容器,进入容器

    作者简介: 辭七七,目前大一,正在学习C/C++,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: 七七的闲谈 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖 docker 客户端非常简单 ,我们可以直接输入 docker 命令来查看到 Docker 客户端的所有命令选项。 可以通过命令 dock

    2024年02月11日
    浏览(44)
  • docker运行并进入MySQL容器

    这是一个使用Docker命令行工具来启动一个MySQL容器的命令。下面,让我们来详细解析这条命令: docker run docker : Docker的命令行工具。 run : Docker的子命令,用于启动一个新的容器实例。 -itd 这是三个组合起来的标志: -i 或 --interactive : 保持标准输入打开,即使没有附加到容器的

    2024年02月09日
    浏览(44)
  • Docker使用root用户进入容器

    -u 0 使用该 -u 选项时,您可以使用 root 用户( ID = 0 )而不是提供的默认用户登录Docker容器. root(id = 0)是容器中的默认用户。图像开发人员可以创建其他用户。这些用户可以通过名称访问。传递数字ID时,用户不必在容器中。

    2024年02月12日
    浏览(33)
  • 使用Vscode连接进入docker容器

    使用Vscode连接进入docker容器 在使用Vscode连接远程服务器进行操作时,使用Vscode丰富的插件进行,使用Remote-SSH连接服务器,但是该插件进行连接是不能进入到docker容器内部进行操作。想要直接进入到容器内部进行工作需要另外的方法。 方法一:使用ssh工具进行连接,容器在运

    2024年02月16日
    浏览(40)
  • 使用Docker容器配置ssh服务,远程直接进入容器

    最终版 hub仓库 https://hub.docker.com/ 目录 hub仓库 docker命令 镜像 查看所有镜像 运行镜像 容器 查看所有容器 可以在当前终端挂载 停止容器 删除容器s 使用容器 Docker使用镜像配置ssh服务后用ssh登陆 1. 先上dockerhub上pull一个需要的镜像下来,然后run这个镜像生成一个容器。 2. 进入

    2024年02月08日
    浏览(41)
  • Docker查看、创建、进入容器相关的命令

    用-it指令创建出来的容器,创建完成之后会立马进入容器。退出之后立马关闭容器。 退出容器: 查看现在正在运行的容器命令: 查看历史容器,关闭和没关闭的都能看到则指令为: 会出来历史打开的容器的表格,其中有id,及image,image表示你用哪个镜像文件创建出来的容器

    2024年02月13日
    浏览(39)
  • 【Ubuntu18.04 docker 启动容器,进入容器,执行脚本】

    1,启动容器 1,当前容器已经启动,怎么进入呢? -----进入步骤 一、 docker 服务启动启动 二、docker 容器自动启动 三、设置容器内的服务自动启动: 1-首先制作一个启动脚本start_fw.sh 参考 2-将容器制作为镜像,然后启动容器 3-

    2024年02月11日
    浏览(40)
  • 怎么进入docker容器获取jar包并下载到本地

    今天公司通过jenkins发布到测试环境的之后,测试小姐姐在测试居然发现功能没有更新上去。查看gitlib看代码有合并,查看jenkins配置的打包的分支也没有错,查看jenkins打包日志也有拉最新代码打包,诡异,于是想去服务器上的docker 镜像拉取jar看看是啥情况。 连接linux服务器的

    2024年02月13日
    浏览(39)
  • Docker进入容器出现:bash: vi: command not found

    docker基础容器中bash: vi: command not found问题解决 | 你邻座的怪同学-CSDN 在使用 Docker 容器时,有时候里边没有安装vim,敲vim命令时提示说: vim: command not found 。 这个时候就需要安装vim,可是当你敲 apt-get install vim 命令时,提示: 操作步骤: 使用以下命令: 这个命令的作用是:

    2024年02月09日
    浏览(42)
  • Docker exec进入容器后不显示容器ID,显示bash-4,4#的解决方法

    错误情景 : docker exec -it 6829a4eaef65 bash 命令进入容器, 不是出现 [root@6829a4eaef65 /]# 而是出现了bash-4.4# 产生原因 :命令行显示-bash-4.2# 的原因是在当前用户的root目录缺少了两个文件 解决方法: 1. 执行命令: docker exec -it 6829a4eaef65 bash 进入容器 2. 执行命令: 执行命令,持久化

    2024年02月09日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包