zoukankan      html  css  js  c++  java
  • [Docker] Accessing a Container

    If you want to get into container and look around, you can use:

    docker container exec

    to run against a running container. And to do that, we need to know the id / name of the running container.

    To get id / name of the container, we can do:

    docker container ls

    For example, the name of the container is called: elegant_noether.

    docker container exec elegant_noether du -mh

    And 'du -mh' will print out the size of each folder:

    $ docker container exec elegant_noether du -mh
    16K     ./error/include
    220K    ./error
    44K     ./build
    8.0K    ./htdocs
    892K    ./include
    72K     ./conf/extra
    72K     ./conf/original/extra
    96K     ./conf/original
    268K    ./conf
    260K    ./icons/small
    1.3M    ./icons
    20K     ./cgi-bin
    4.5M    ./modules
    8.0K    ./logs
    1.2M    ./bin
    8.4M    .

    Running commands is cool, but we can also attach a shell to those containers and browse them just like they were a full operating system.

    The -i and -t flags can be passed to the exec command to keep an interactive shell open, and you can specify the shell you want to attach after the container ID. Here we'll attach a standard Bash shell.

    docket container exec -it elegant_noether /bin/bash

    We're in! From the perspective of the terminal window we're just navigating a normal Unix system, so any commands we type will run inside of that system. Try typing that same command we just ran with exec from inside the container.

    Now to check the size of each folder, we can just do:

    du -mh
    $ docker container exec -it elegant_noether /bin/bash
    root@a8c267869b0b:/usr/local/apache2# du -mh
    16K     ./error/include
    220K    ./error
    44K     ./build
    8.0K    ./htdocs
    892K    ./include
    72K     ./conf/extra
    72K     ./conf/original/extra
    96K     ./conf/original
    268K    ./conf
    260K    ./icons/small
    1.3M    ./icons
    20K     ./cgi-bin
    4.5M    ./modules
    8.0K    ./logs
    1.2M    ./bin
    8.4M    .

    Another thing we can do once we’re in a container’s shell is install new programs, or packages, that aren’t part of the base image. Let’s install the fortunes package.

    apt-get install -y fortunes

    The package was installed in 

    /usr/games/fortune

    It’s kind of annoying to have to type /usr/games/ before the fortune command, so let’s update the PATH environment variable in the container so that we don’t have to type all of that anymore.

    PATH=$PATH:/usr/games/

    Now we can export path:

    export PATH

    After that we can just type 'fortune' to start the game

  • 相关阅读:
    codevs1227 方格取数2 注意数组啊啊啊啊啊啊啊啊啊啊
    codevs1033 蚯蚓的游戏问题 裸最小费用最大流,注意要拆点
    模板题 codevs 1993 草地排水 想学习的请看链接
    java初级易错问题总结
    JAVA基本数据类型所占字节数是多少?
    forword和重定向有什么区别?
    Spring框架注解
    hibernate利用mysql的自增张id属性实现自增长id和手动赋值id并存
    eclispe中安装hibernate插件
    struts2使用模型传值
  • 原文地址:https://www.cnblogs.com/Answer1215/p/6745141.html
Copyright © 2011-2022 走看看