Pages

Wednesday, December 24, 2014

I encountered the ImportError today while trying to use pip. Somehow the setup tools package had been deleted in my Python environment.===============
File "/usr/bin/gunicorn", line 5, in <module>
from pkg_resources import load_entry_point
ImportError: No module named pkg_resources
===============Fix to reset to python Environment
curl https://bootstrap.pypa.io/ez_setup.py | python

For Exporting a docker image from one server to another we can user private registry or we can also tar the image and copy the tar over to new server and import it into the new server using the tar file.

Export a Docker image to a file.

docker save image > image.tar

Import a Docker image

docker load -i (archivefile)
Loads in a Docker image in the following formats: .tar, .tar.gz, .tar.xz. lrz is not supported.

Friday, December 12, 2014

Docker is a platform for developers and sysadmins to develop, ship, and run applications. Docker lets you quickly assemble applications from components and eliminates the friction that can come when shipping code. Docker lets you get your code tested and deployed into production as fast as possible.

Downloading a Docker image
>>docker pull centos
>>docker pull ubuntu
Running A Docker
The -t and -i flags allocate a pseudo-tty and keep stdin open even if not attached. This will allow you to use the container like a traditional VM as long as the bash prompt is running.
Let's launch an Ubuntu container and install Apache inside of it using the bash prompt:
>>docker run -t -i ubuntu /bin/bash
To QuitStarting with docker 0.6.5, you can add -t to the docker run command, which will attach a pseudo-TTY. Then you can type Control-C to detach from the container without terminating it.If you use -t and -i then Control-C will terminate the container.When using -i with -t then you have to use Control-P Control-Q to detach without terminating.
Control-P Control-Q
List the Dockers Running
>>docker ps -a
Enter a running docker
>>docker exec -it [container-id] bash
Once inside the Docker install the needed Items and Packages and configure the Services as needed.
Now Quit the Docker using Control-P Control-Q To keep it running.
For Using Public Docker Registry, Register with Email Address and Username
https://registry.hub.docker.com/
Committing the changes made into a new Image that can be used later.
>>docker commit [container-id] <registered_username>/<Nameforimage>
eg:
core@coreos ~ $ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5adf005708db centos:latest "/bin/bash" 11 minutes ago Up 11 minutes thirsty_ritchie
core@coreos ~ $ docker commit 5adf005708db rahulrajvn/centos-httpd
b8810f9ca8d52a289c963f57824f575341324c353707a5b1f215840c9ea88ebe
core@coreos ~ $
Now the Image named rahulrajvn/centos-httpd is present in the local machine if we need to create more of that Image in same sever we can use it.
Pushing the Image to registered public Docker-io repo , While pusing we will be asked for Username and password.
core@coreos ~ $ docker push rahulrajvn/centos-httpd
The push refers to a repository [rahulrajvn/centos-httpd] (len: 1)
Sending image list
Please login prior to push:
Username: rahulrajvn
Password:********
Email: ******************
Login Succeeded
The push refers to a repository [rahulrajvn/centos-httpd] (len: 1)
Sending image list
Pushing repository rahulrajvn/centos-httpd (1 tags)
511136ea3c5a: Image already pushed, skipping
5b12ef8fd570: Image already pushed, skipping
34943839435d: Image already pushed, skipping
b8810f9ca8d5: Image successfully pushed
Pushing tag for rev [b8810f9ca8d5] on {https://cdn-registry-1.docker.io/v1/repositories/rahulrajvn/centos-httpd/tags/latest}
core@coreos ~ $
Download a image from a Public Repo We just need to call it using the account name and Image name . Here in below example we use account rahulrajvn and image centos-httpd.
core@coreos2 ~ $ docker pull rahulrajvn/centos-httpd
Pulling repository rahulrajvn/centos-httpd
b8810f9ca8d5: Download complete
511136ea3c5a: Download complete
5b12ef8fd570: Download complete
34943839435d: Download complete
Status: Downloaded newer image for rahulrajvn/centos-httpd:latest
core@coreos2 ~ $
Network Access to 80
The default apache install will be running on port 80. To give our container access to traffic over port 80, we use the -p flag and specify the port on the host that maps to the port inside the container. In our case we want 80 for each, so we include -p 80:80 in our command:
docker run -d -p 80:80 -it rahulrajvn/centos6 /bin/bash
If we need to forward more ports we can do it by adding one more -p option.
docker run -d -p 80:80 -p 2222:22 -it rahulrajvn/centos6 /bin/bash
Listing the Images
>>docker images
Removing Images
>>docker rmi <Image-ID>

After doing this the next steps are all run as the nova user.SSH Configuration
su - nova
We need to generate an SSH key:

ssh-keygen

Next up we need to configure SSH to not do host key verification, unless you want to manually SSH to all compute nodes that exist and accept the key (and continue to do so for each new compute node you add).