美文网首页
Docker教程-----容器管理

Docker教程-----容器管理

作者: 单曲_循环 | 来源:发表于2021-03-14 21:57 被阅读0次
    1. 启动一个容器:
      docker run alpine /bin/echo "Hello Docker"
      image.png
    • 运行结束,容器终止 STATUS : Exited
    • docker会自动生成一个名字,这个例子中是:ecstatic_euclid

    当利用 docker run 来创建容器时,Docker 在后台运行的标准操作包括:

    • 检查本地是否存在指定的镜像,不存在就从公共仓库下载;
    • 利用镜像创建并启动一个容器;
    • 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层;
    • 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去;
    • 从地址池配置一个ip地址给容器;
    • 执行用户指定的应用程序;
    • 执行完毕后容器被终止。

    我们再来看一个例子:
    docker run --name myalpine -it alpine /bin/sh

    image.png
    docker 以镜像alpine为模板启动了一个容器, 我们将容器命名为myalpine, 在启动之后并进入容器使用/bin/sh作为命令解释器.这个时候哦我们可以执行一些常见的命令
    1. 让容器在后台(守护进程方式)运行
      docker run -d --name myalpine alpine /bin/sh

    但是我们发现状态是exited, 容器启动后就会在后台运行,然后返回一个容器ID到控制台,而且上面这个容器也终止了

    我们看参数的详细解释:

    Name, shorthand Description
    --interactive , -i Keep STDIN open even if not attached
    --tty , -t Allocate a pseudo-TTY
    --detach , -d Run container in background and print container ID

    再尝试一个例子:
    docker run --name alpine -d alpine /bin/sh -c "while true; do echo $((i++)); sleep 1;done"

    image.png
    当我们attach进去之后
    image.png

    至于这里为什么只显示5 ,或者你可能显示得是其他得数字, 这里以后细细研究

    1. 从容器中退出
      exit OR ctrl+c

      image.png
    2. 启动已终止的容器
      docker start myalpine

      image.png
    3. 进入在后台运行的容器
      docker attach myalpine

      image.png
      或者: nsenter (包含在 util-linux中)
      yum install util-linux
      我们使用一个脚本来进入容器
      vim docker_in.sh
    #! /bin/bash
    # Use nsenter to access docker container
    docker_in(){
    NAME_ID=$1
    PID=$(docker inspect --format "{{ .State.Pid}}" $NAME_ID)
    nsenter --target $PID --mount --uts --ipc --net --pid /bin/sh
    }
    docker_in $1
    

    执行 :
    chmod +x ./docker_in.sh
    ./docker_in.sh myalpine

    image.png
    但是发现通过nsenter进入的容器环境有很多不一样的地方,比如ls不能使用, 文件环境不一样, 这里回头再更新改进...........
    1. 不进入容器让容器执行命令
      docker exec alpine whoami
      image.png

    同时, 使用exec还可以进入容器
    docker exec -it alpine /bin/sh

    image.png

    相关文章

      网友评论

          本文标题:Docker教程-----容器管理

          本文链接:https://www.haomeiwen.com/subject/otwccltx.html