I’ve been learning more about Docker and I’ve stumbled into the need to enter into a running Docker container so that I can check log files to see why a service isn’t running. I learned from a StackOverflow post that there is a new Docker command that lets you easily do this:
docker exec -it [container-id] bash
However, it’s only available in Docker version 1.3 or greater. The version of Ubuntu that I’m running has Docker 1.2. So, I want to add the Docker PPA so I can get more frequent updates from the Docker developers. To do that, I run the following commands:
wget -qO- https://get.docker.io/gpg | sudo apt-key add - sudo sh -c "echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list" sudo apt-get update sudo apt-get install lxc-docker
This also uninstalls the ‘docker.io’ version of the package that’s found in the regular Ubuntu package repository. After installing the newer Docker version, I can use the nifty
docker exec function.
Update: The above currently installs Docker 1.4.1, but there is an issue with this version of Docker that causes my Packer.io builds to fail. To resolve this, a particular version of Docker (above 1.3 and below 1.4.x) can be installed with the following command:
sudo apt-get install lxc-docker-1.3.3
**Update (Slight Return): And, a handy modification to the
docker command is:
docker exec -it $(docker ps -l -q) bash
This will let you into the Docker container that you just started.