docker容器的启动(docker容器启动时间)

在使用-d参数时,容器启动后会进入后台,用户无法看到容器中的信息,也无法进行操作。这个时候如果需要进入容器进行操作,有多种方法,包括使用官方的attach或exec命令,以及第三方的nsenter工具等。1、attach命令attach命令是Docker自带的命令,命令格式为:dockerattach[–detach-keys[=[]]][–no-stdin][–sig-prox

大家好,又见面了,我是你们的朋友全栈君。

在使用-d参数时,容器启动后会进入后台,用户无法看到容器中的信息,也无法进行操作。

这个时候如果需要进入容器进行操作,有多种方法,包括使用官方的attach或exec命令,以及第三方的nsenter工具等。
1、attach命令
attach命令是Docker自带的命令,命令格式为:
docker attach [–detach-keys[=[]]] [–no-stdin] [–sig-proxy[=true]] CONTAINER

支持三个主要选项:

·–detach-keys[=[]]:指定退出attach模式的快捷键序列,默认是CTRL-p CTRL-q;

·–no-stdin=true|false:是否关闭标准输入,默认是保持打开;

·–sig-proxy=true|false:是否代理收到的系统信号给应用进程,默认为true。

但是,使用attach命令有时候并不方便。当多个窗口同时使用attach命令连到同一个容器的时候,所有窗口都会同步显示。当某个窗口因命令阻塞时,其他窗口也无法执行操作了。
2、exec命令
Docker从1.3.0版本起提供了一个更加方便的exec命令,可以在容器内直接执行任意命令。该命令的基本格式为:

docker exec [-d|–detach] [–detach-keys[=[]]] [-i|–interactive] [–privileged] [-t|–tty] [-u|–user[=USER]] CONTAINER COMMAND [ARG…]。

比较重要的参数有:

·-i,–interactive=true|false:打开标准输入接受用户输入命令,默认为false;

·–privileged=true|false:是否给执行命令以高权限,默认为false;

·-t,–tty=true|false:分配伪终端,默认为false;

·-u,–user=”“:执行命令的用户名或ID。

例如进入到刚创建的容器中,并启动一个bash:
这里写图片描述

可以看到,一个bash终端打开了,在不影响容器内其他应用的前提下,用户可以很容易与容器进行交互。
通过指定-it参数来保持标准输入打开,并且分配一个伪终端。通过exec命令对容器执行操作是最为推荐的方式。

3、nsenter 工具
在util-linux软件包版本2.23+中包含nsenter工具。如果系统中的util-linux包没有该命令,可以按照下面的方法从源码安装:

$ cd /tmp; curl https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz | tar -zxf-; cd util-linux-2.24;
$ ./configure --without-ncurses
$ make nsenter && cp nsenter /usr/local/bin

为了使用nsenter连接到容器,还需要找到容器进程的PID,可以通过下面的命令获取:

PID=$(docker inspect --format "{ 
   { .State.Pid }}" )

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

$ nsenter --target $PID --mount --uts --ipc --net --pid
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/129452.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • docker安装 搭建私库 删除私库镜像 打印私库镜像 的shell脚本[通俗易懂]

    docker安装 搭建私库 删除私库镜像 打印私库镜像 的shell脚本[通俗易懂]#!/bin/bash#本脚本可以打印私有镜像库中所有的镜像#私有镜像库地址HUB_URL=hub.dy.com:5000#取得所有私有镜像库的所有镜像IMAGESLIST=$(curl-shttp://${HUB_URL}/v2/_catalog)#echo${IMAGESLIST}#删除后2个字符IMAGESLIST=${IMAGESLIST::-2}#删除…

    2022年7月18日
    12
  • docker 拉取镜像_docker启动镜像命令

    docker 拉取镜像_docker启动镜像命令docker镜像网站官网https://hub.docker.com/网易蜂巢https://id.163yun.com/需要的登录daocloudhttp://hub.daocloud.io/不需要登录公司内部私服:需要添加配置需要在/etc/docker/daemon.json(如果不存在,则手动创建)添加下面一段话 { “registry-mirrors”:[“https://registry.docker-cn.com”], “insecure-

    2022年9月22日
    1
  • Docker 拉取 oracle 11g镜像配置

    Docker 拉取 oracle 11g镜像配置话不多说开始记录docker拉取阿里的oracle11g镜像并进行配置,用pl/sql可以登录为最终结果navicat连接是在最后一步参考:https://blog.csdn.net/zwx521515/article/details/77982884但是根据这个进行配置会有一些问题,所以写这篇记录一下,希望可以帮助其他人开始:①、开始拉取镜像-执行命令:…

    2022年5月7日
    111
  • centos7.4安装docker_爬虫为什么要用docker

    centos7.4安装docker_爬虫为什么要用docker前言当我们在一台电脑上搭建了python3.6的环境,下次换台电脑,又得重新搭建一次,设置环境变量等操作。好不容易安装好,一会提示pip不是内部或外部命令,一会又提示pip:commandno

    2022年7月29日
    5
  • docker(11)Dockerfile 中的COPY与ADD 命令[通俗易懂]

    docker(11)Dockerfile 中的COPY与ADD 命令[通俗易懂]前言Dockerfile中提供了两个非常相似的命令COPY和ADD,本文尝试解释这两个命令的基本功能,以及其异同点,然后总结其各自适合的应用场景。Build上下文的概念在使用dock

    2022年7月31日
    7
  • docker下载安装教程_安卓安装docker

    docker下载安装教程_安卓安装docker前言Docker提供轻量的虚拟化,你能够从Docker获得一个额外抽象层,你能够在单台机器上运行多个Docker微容器,而每个微容器里都有一个微服务或独立应用,例如你可以将Tomcat运行在一个D

    2022年7月29日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号