[Docker] Accessing a Container

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

docker container exec

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

 

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

docker container ls

 

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

docker container exec elegant_noether du -mh

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

$ 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.ui

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.spa

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.code

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

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.blog

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

相關文章
相關標籤/搜索