https://wiki.openstack.org/w/api.php?action=feedcontributions&user=Partners&feedformat=atomOpenStack - User contributions [en]2024-03-29T05:59:53ZUser contributionsMediaWiki 1.28.2https://wiki.openstack.org/w/index.php?title=Project_Resources&diff=134864Project Resources2016-10-14T12:09:17Z<p>Partners: /* Books */</p>
<hr />
<div>OpenStack is divided up across several [[Programs]]. Some resources are common across programs, others are program-specific.<br />
<br />
== Common ==<br />
<br />
Public home: http://openstack.org<br />
<br />
Project home: https://launchpad.net/openstack<br />
<br />
Ask OpenStack (technical support): http://ask.openstack.org<br />
<br />
=== Code repositories ===<br />
* http://github.com/openstack (main projects)<br />
* http://github.com/openstack-infra (project infrastructure tools)<br />
* https://github.com/openstack-dev (development tools, including devstack)<br />
<br />
=== Code submission and review ===<br />
<br />
* Gerrit review system: https://review.openstack.org/<br />
* State of current merge proposals: http://status.openstack.org/reviews/<br />
* Continuous integration (Zuul): http://status.openstack.org/zuul/<br />
* User/administrator documentation: http://docs.openstack.org/<br />
<br />
=== Blogs ===<br />
* Official blog: http://www.openstack.org/blog/<br />
* Community blogs: http://planet.openstack.org/<br />
<br />
===Books===<br />
* OpenStack in Action by V. K. Cody Bumgardner: http://www.manning.com/bumgardner/<br />
*[https://www.packtpub.com/virtualization-and-cloud/openstack-administration-ansible OpenStack Administration with Ansible] by Walter Bentley, Packt. <br />
*[https://www.packtpub.com/virtualization-and-cloud/openstack-trove-essentials OpenStack Trove Essentials] by Alok Shrivastwa & Sunil Sarat, Packt. <br />
*[https://www.packtpub.com/virtualization-and-cloud/troubleshooting-openstack Troubleshooting OpenStack] by Tony Campbell, Packt. <br />
*[https://www.packtpub.com/virtualization-and-cloud/openstack-sahara-essentials OpenStack Sahara Essentials] by Omar Khedher, Packt. <br />
*[https://www.packtpub.com/virtualization-and-cloud/openstack-networking-essentials OpenStack Networking Essentials] by James Denton, Packt. <br />
*[https://www.packtpub.com/virtualization-and-cloud/openstack-essentials-second-edition OpenStack Essentials - Second Edition] by Dan Radez, Packt. <br />
*[https://www.packtpub.com/virtualization-and-cloud/openstack-building-cloud-environment OpenStack: Building a Cloud Environment (Course)] by Tony Campbell, Egle Sigler, Cody Bunch, Kevin Jackson, Sunil Sarat & Alok Shrivastwa, Packt.<br />
<br />
=== Job Board ===<br />
* OpenStack Job Board : http://www.openstackjobs.org<br />
* OpenStack Job Board on Twitter : https://twitter.com/openstackjobs<br />
* OpenStack Job Board group on LinkedIn: http://www.linkedin.com/groups/OpenStack-Jobs-6772591?home=&gid=6772591<br />
<br />
=== Twitter === <br />
<br />
* http://twitter.com/openstack<br />
<br />
=== Notepad ===<br />
<br />
* https://etherpad.openstack.org/<br />
<br />
=== Pasteboard ===<br />
<br />
* http://paste.openstack.org/<br />
<br />
== Project-specific ==<br />
<br />
=== Compute (Nova) ===<br />
<br />
* Project home: http://launchpad.net/nova<br />
* Code: http://github.com/openstack/nova<br />
* Bug tracking: https://bugs.launchpad.net/nova<br />
* Blueprints (feature requests): https://blueprints.launchpad.net/nova<br />
* Ask OpenStack (tech support): [https://ask.openstack.org/questions/scope:all/sort:activity-desc/tags:nova/ Q&A tagged "Nova"]<br />
* Proposed code changes: https://review.openstack.org/#q,status:open+project:openstack/nova,n,z<br />
* Gitweb for proposed changes: https://review.openstack.org/gitweb?p=openstack/nova.git;a=summary<br />
<br />
Teams (list of developers): <br />
* Full team: https://launchpad.net/~nova<br />
* Core developers (can approve merge proposals): https://review.openstack.org/#/admin/groups/25,members<br />
<br />
Nova is also split up into sub-teams. Some blueprints are assigned to sub-teams rather than individuals. See [[Teams]].<br />
<br />
=== Object Storage (Swift) ===<br />
<br />
* Project home: http://launchpad.net/swift<br />
* Code: http://github.com/openstack/swift<br />
* Bug tracking: https://bugs.launchpad.net/swift<br />
* Blueprints (feature requests): https://blueprints.launchpad.net/swift<br />
* Ask OpenStack (tech support): [https://ask.openstack.org/questions/scope:all/sort:activity-desc/tags:swift/ Q&A tagged "Swift"]<br />
* Proposed code changes: https://review.openstack.org/#q,status:open+project:openstack/swift,n,z<br />
* Gitweb for proposed changes: https://review.openstack.org/gitweb?p=openstack/swift.git;a=summary<br />
<br />
Teams (list of developers):<br />
* Full team: https://launchpad.net/~swift<br />
* Core developers (can approve merge proposals): https://review.openstack.org/#/admin/groups/24,members<br />
<br />
=== Image Service (Glance) ===<br />
<br />
* Project home: http://launchpad.net/glance<br />
* Code: http://github.com/openstack/glance<br />
* Bug tracking: https://bugs.launchpad.net/glance<br />
* Blueprints (feature requests): https://blueprints.launchpad.net/glance<br />
* Ask OpenStack (tech support): [https://ask.openstack.org/questions/scope:all/sort:activity-desc/tags:glance/ Q&A tagged "Glance"]<br />
* Proposed code changes: https://review.openstack.org/#q,status:open+project:openstack/glance,n,z<br />
* Gitweb for proposed changes: https://review.openstack.org/gitweb?p=openstack/glance.git;a=summary<br />
<br />
Teams (list of developers):<br />
* Full team: https://launchpad.net/~glance<br />
* Core developers (can approve merge proposals): https://review.openstack.org/#/admin/groups/13,members<br />
<br />
=== Identity Service (Keystone) ===<br />
<br />
* Project home: http://launchpad.net/keystone<br />
* Code: http://github.com/openstack/keystone<br />
* Bug tracking: https://bugs.launchpad.net/keystone<br />
* Blueprints (feature requests): https://blueprints.launchpad.net/keystone<br />
* Ask OpenStack (tech support): [https://ask.openstack.org/questions/scope:all/sort:activity-desc/tags:keystone/ Q&A tagged "Keystone"]<br />
* Proposed code changes: https://review.openstack.org/#q,status:open+project:openstack/keystone,n,z<br />
* Gitweb for proposed changes: https://review.openstack.org/gitweb?p=openstack/keystone.git;a=summary<br />
* Core developers (can approve merge proposals): https://review.openstack.org/#/admin/groups/9,members<br />
<br />
=== Dashboard (Horizon) ===<br />
<br />
* Project home: http://launchpad.net/horizon<br />
* Code: http://github.com/openstack/horizon<br />
* Bug tracking: https://bugs.launchpad.net/horizon<br />
* Blueprints (feature requests): https://blueprints.launchpad.net/horizon<br />
* Ask OpenStack (tech support): [https://ask.openstack.org/questions/scope:all/sort:activity-desc/tags:horizon/ Q&A tagged "Horizon"]<br />
* Proposed code changes: https://review.openstack.org/#q,status:open+project:openstack/horizon,n,z<br />
* Gitweb for proposed changes: https://review.openstack.org/gitweb?p=openstack/horizon.git;a=summary<br />
* Core developers (can approve merge proposals): https://review.openstack.org/#/admin/groups/43,members<br />
<br />
=== Block Storage (Cinder) ===<br />
<br />
* Core developers (can approve merge proposals): https://review.openstack.org/#/admin/groups/83,members<br />
<br />
=== Shared File Systems (Manila) ===<br />
<br />
* Core developers (can approve merge proposals): https://review.openstack.org/#/admin/groups/213,members<br />
<br />
=== Networking (Neutron) ===<br />
<br />
* Core developers (can approve merge proposals): https://review.openstack.org/#/admin/groups/38,members<br />
<br />
=== Metering/Monitoring (Ceilometer) ===<br />
<br />
* Core developers (can approve merge proposals): https://review.openstack.org/#/admin/groups/107,members<br />
<br />
=== Orchestration (Heat) ===<br />
<br />
* Core developers (can approve merge proposals): https://review.openstack.org/#/admin/groups/114,members<br />
<br />
=== Python bindings to Nova API (novaclient) ===<br />
* Project home: http://launchpad.net/python-novaclient<br />
* Code: https://github.com/openstack/python-novaclient<br />
* Bug tracking: https://bugs.launchpad.net/python-novaclient<br />
<br />
Packages:<br />
* Python (easy_install/pip):<br />
** http://pypi.python.org/pypi/python-novaclient<br />
<br />
== Documentation repositories ==<br />
<br />
The developer documentation is bundled with the source code. However, there are user/administrator manuals (hosted at http://docs.openstack.org) that are hosted in separate repositories.<br />
<br />
=== OpenStack administration guides ===<br />
<br />
* Home: http://launchpad.net/openstack-manuals<br />
* Source: https://github.com/openstack/openstack-manuals<br />
* Bugs: https://bugs.launchpad.net/openstack-manuals<br />
<br />
=== OpenStack API references ===<br />
<br />
* Home: http://docs.openstack.org/api/<br />
<br />
Source: <br />
* Nova API: https://github.com/openstack/compute-api<br />
* Glance API: https://github.com/openstack/image-api<br />
* Swift API: https://github.com/openstack/object-api<br />
* Keystone API: https://github.com/openstack/identity-api<br />
<br />
=== OpenStack Starter Guide ===<br />
<br />
* Home: https://launchpad.net/openstackbook<br />
* Code: https://code.launchpad.net/openstackbook (lp:openstackbook)<br />
<br />
[[Category:contribute]]</div>Partnershttps://wiki.openstack.org/w/index.php?title=Project_Resources&diff=134861Project Resources2016-10-14T11:50:07Z<p>Partners: /* Books */</p>
<hr />
<div>OpenStack is divided up across several [[Programs]]. Some resources are common across programs, others are program-specific.<br />
<br />
== Common ==<br />
<br />
Public home: http://openstack.org<br />
<br />
Project home: https://launchpad.net/openstack<br />
<br />
Ask OpenStack (technical support): http://ask.openstack.org<br />
<br />
=== Code repositories ===<br />
* http://github.com/openstack (main projects)<br />
* http://github.com/openstack-infra (project infrastructure tools)<br />
* https://github.com/openstack-dev (development tools, including devstack)<br />
<br />
=== Code submission and review ===<br />
<br />
* Gerrit review system: https://review.openstack.org/<br />
* State of current merge proposals: http://status.openstack.org/reviews/<br />
* Continuous integration (Zuul): http://status.openstack.org/zuul/<br />
* User/administrator documentation: http://docs.openstack.org/<br />
<br />
=== Blogs ===<br />
* Official blog: http://www.openstack.org/blog/<br />
* Community blogs: http://planet.openstack.org/<br />
<br />
===Books===<br />
* OpenStack in Action by V. K. Cody Bumgardner: http://www.manning.com/bumgardner/<br />
*[https://www.packtpub.com/virtualization-and-cloud/openstack-administration-ansible OpenStack Administration with Ansible] by Walter Bentley, Packt. <br />
*[https://www.packtpub.com/virtualization-and-cloud/openstack-trove-essentials OpenStack Trove Essentials] by Alok Shrivastwa & Sunil Sarat, Packt. <br />
*[https://www.packtpub.com/virtualization-and-cloud/troubleshooting-openstack Troubleshooting OpenStack] by Tony Campbell, Packt. <br />
*[https://www.packtpub.com/virtualization-and-cloud/openstack-sahara-essentials OpenStack Sahara Essentials] by Omar Khedher, Packt. <br />
*[https://www.packtpub.com/virtualization-and-cloud/openstack-networking-essentials OpenStack Networking Essentials] by James Denton, Packt. <br />
*[https://www.packtpub.com/virtualization-and-cloud/openstack-essentials-second-edition OpenStack Essentials - Second Edition] by Dan Radez, Packt. <br />
*[https://www.packtpub.com/virtualization-and-cloud/openstack-building-cloud-environment OpenStack: Building a Cloud Environment] by Tony Campbell, Egle Sigler, Cody Bunch, Kevin Jackson, Sunil Sarat & Alok Shrivastwa, Packt.<br />
<br />
=== Job Board ===<br />
* OpenStack Job Board : http://www.openstackjobs.org<br />
* OpenStack Job Board on Twitter : https://twitter.com/openstackjobs<br />
* OpenStack Job Board group on LinkedIn: http://www.linkedin.com/groups/OpenStack-Jobs-6772591?home=&gid=6772591<br />
<br />
=== Twitter === <br />
<br />
* http://twitter.com/openstack<br />
<br />
=== Notepad ===<br />
<br />
* https://etherpad.openstack.org/<br />
<br />
=== Pasteboard ===<br />
<br />
* http://paste.openstack.org/<br />
<br />
== Project-specific ==<br />
<br />
=== Compute (Nova) ===<br />
<br />
* Project home: http://launchpad.net/nova<br />
* Code: http://github.com/openstack/nova<br />
* Bug tracking: https://bugs.launchpad.net/nova<br />
* Blueprints (feature requests): https://blueprints.launchpad.net/nova<br />
* Ask OpenStack (tech support): [https://ask.openstack.org/questions/scope:all/sort:activity-desc/tags:nova/ Q&A tagged "Nova"]<br />
* Proposed code changes: https://review.openstack.org/#q,status:open+project:openstack/nova,n,z<br />
* Gitweb for proposed changes: https://review.openstack.org/gitweb?p=openstack/nova.git;a=summary<br />
<br />
Teams (list of developers): <br />
* Full team: https://launchpad.net/~nova<br />
* Core developers (can approve merge proposals): https://review.openstack.org/#/admin/groups/25,members<br />
<br />
Nova is also split up into sub-teams. Some blueprints are assigned to sub-teams rather than individuals. See [[Teams]].<br />
<br />
=== Object Storage (Swift) ===<br />
<br />
* Project home: http://launchpad.net/swift<br />
* Code: http://github.com/openstack/swift<br />
* Bug tracking: https://bugs.launchpad.net/swift<br />
* Blueprints (feature requests): https://blueprints.launchpad.net/swift<br />
* Ask OpenStack (tech support): [https://ask.openstack.org/questions/scope:all/sort:activity-desc/tags:swift/ Q&A tagged "Swift"]<br />
* Proposed code changes: https://review.openstack.org/#q,status:open+project:openstack/swift,n,z<br />
* Gitweb for proposed changes: https://review.openstack.org/gitweb?p=openstack/swift.git;a=summary<br />
<br />
Teams (list of developers):<br />
* Full team: https://launchpad.net/~swift<br />
* Core developers (can approve merge proposals): https://review.openstack.org/#/admin/groups/24,members<br />
<br />
=== Image Service (Glance) ===<br />
<br />
* Project home: http://launchpad.net/glance<br />
* Code: http://github.com/openstack/glance<br />
* Bug tracking: https://bugs.launchpad.net/glance<br />
* Blueprints (feature requests): https://blueprints.launchpad.net/glance<br />
* Ask OpenStack (tech support): [https://ask.openstack.org/questions/scope:all/sort:activity-desc/tags:glance/ Q&A tagged "Glance"]<br />
* Proposed code changes: https://review.openstack.org/#q,status:open+project:openstack/glance,n,z<br />
* Gitweb for proposed changes: https://review.openstack.org/gitweb?p=openstack/glance.git;a=summary<br />
<br />
Teams (list of developers):<br />
* Full team: https://launchpad.net/~glance<br />
* Core developers (can approve merge proposals): https://review.openstack.org/#/admin/groups/13,members<br />
<br />
=== Identity Service (Keystone) ===<br />
<br />
* Project home: http://launchpad.net/keystone<br />
* Code: http://github.com/openstack/keystone<br />
* Bug tracking: https://bugs.launchpad.net/keystone<br />
* Blueprints (feature requests): https://blueprints.launchpad.net/keystone<br />
* Ask OpenStack (tech support): [https://ask.openstack.org/questions/scope:all/sort:activity-desc/tags:keystone/ Q&A tagged "Keystone"]<br />
* Proposed code changes: https://review.openstack.org/#q,status:open+project:openstack/keystone,n,z<br />
* Gitweb for proposed changes: https://review.openstack.org/gitweb?p=openstack/keystone.git;a=summary<br />
* Core developers (can approve merge proposals): https://review.openstack.org/#/admin/groups/9,members<br />
<br />
=== Dashboard (Horizon) ===<br />
<br />
* Project home: http://launchpad.net/horizon<br />
* Code: http://github.com/openstack/horizon<br />
* Bug tracking: https://bugs.launchpad.net/horizon<br />
* Blueprints (feature requests): https://blueprints.launchpad.net/horizon<br />
* Ask OpenStack (tech support): [https://ask.openstack.org/questions/scope:all/sort:activity-desc/tags:horizon/ Q&A tagged "Horizon"]<br />
* Proposed code changes: https://review.openstack.org/#q,status:open+project:openstack/horizon,n,z<br />
* Gitweb for proposed changes: https://review.openstack.org/gitweb?p=openstack/horizon.git;a=summary<br />
* Core developers (can approve merge proposals): https://review.openstack.org/#/admin/groups/43,members<br />
<br />
=== Block Storage (Cinder) ===<br />
<br />
* Core developers (can approve merge proposals): https://review.openstack.org/#/admin/groups/83,members<br />
<br />
=== Shared File Systems (Manila) ===<br />
<br />
* Core developers (can approve merge proposals): https://review.openstack.org/#/admin/groups/213,members<br />
<br />
=== Networking (Neutron) ===<br />
<br />
* Core developers (can approve merge proposals): https://review.openstack.org/#/admin/groups/38,members<br />
<br />
=== Metering/Monitoring (Ceilometer) ===<br />
<br />
* Core developers (can approve merge proposals): https://review.openstack.org/#/admin/groups/107,members<br />
<br />
=== Orchestration (Heat) ===<br />
<br />
* Core developers (can approve merge proposals): https://review.openstack.org/#/admin/groups/114,members<br />
<br />
=== Python bindings to Nova API (novaclient) ===<br />
* Project home: http://launchpad.net/python-novaclient<br />
* Code: https://github.com/openstack/python-novaclient<br />
* Bug tracking: https://bugs.launchpad.net/python-novaclient<br />
<br />
Packages:<br />
* Python (easy_install/pip):<br />
** http://pypi.python.org/pypi/python-novaclient<br />
<br />
== Documentation repositories ==<br />
<br />
The developer documentation is bundled with the source code. However, there are user/administrator manuals (hosted at http://docs.openstack.org) that are hosted in separate repositories.<br />
<br />
=== OpenStack administration guides ===<br />
<br />
* Home: http://launchpad.net/openstack-manuals<br />
* Source: https://github.com/openstack/openstack-manuals<br />
* Bugs: https://bugs.launchpad.net/openstack-manuals<br />
<br />
=== OpenStack API references ===<br />
<br />
* Home: http://docs.openstack.org/api/<br />
<br />
Source: <br />
* Nova API: https://github.com/openstack/compute-api<br />
* Glance API: https://github.com/openstack/image-api<br />
* Swift API: https://github.com/openstack/object-api<br />
* Keystone API: https://github.com/openstack/identity-api<br />
<br />
=== OpenStack Starter Guide ===<br />
<br />
* Home: https://launchpad.net/openstackbook<br />
* Code: https://code.launchpad.net/openstackbook (lp:openstackbook)<br />
<br />
[[Category:contribute]]</div>Partnershttps://wiki.openstack.org/w/index.php?title=Docker&diff=134826Docker2016-10-14T07:26:21Z<p>Partners: /* Resources */</p>
<hr />
<div><br />
__TOC__<br />
<br />
<br />
== Overview ==<br />
<br />
The Docker driver is a hypervisor driver for Openstack Nova Compute. It was introduced with the Havana release, but lives out-of-tree for Icehouse and Juno. Being out-of-tree has allowed the driver to reach maturity and feature-parity faster than would be possible should it have remained in-tree. It is expected the driver will return to mainline Nova in the Kilo release.<br />
<br />
[http://www.docker.io/ Docker] is an open-source engine which automates the deployment of applications as highly portable, self-sufficient containers which are independent of hardware, language, framework, packaging system and hosting provider.<br />
<br />
Docker provides management of Linux containers with a high level API providing a lightweight solution that runs processes in isolation. It provides a way to automate software deployment in a secure and repeatable environment. A Docker container includes a software component along with all of its dependencies - binaries, libraries, configuration files, scripts, virtualenvs, jars, gems, tarballs, etc. Docker can be run on any x64 Linux kernel supporting cgroups and aufs.<br />
<br />
Docker is a way of managing multiple containers on a single machine. However used behind Nova makes it much more powerful since it’s then possible to manage several hosts, which in turn manage hundreds of containers. The current Docker project aims for full OpenStack compatibility.<br />
<br />
Containers don't aim to be a replacement for VMs, they are complementary in the sense that they are better for specific use cases.<br />
<br />
<br />
=== What unique advantages Docker bring over other containers technologies? ===<br />
<br />
Docker takes advantage of containers and filesystem technologies in a high-level which are not generic enough to be managed by libvirt.<br />
<br />
* Process-level API: Docker can collect the standard outputs and inputs of the process running in each container for logging or direct interaction, it allows blocking on a container until it exits, setting its environment, and other process-oriented primitives which don’t fit well in libvirt’s abstraction.<br />
* Advanced change control at the filesystem level: Every change made on the filesystem is managed through [http://docs.docker.io/en/latest/commandline/command/diff/ a set of layers] which can be snapshotted, rolled back, diff-ed etc.<br />
* Image portability: The state of any docker container can be optionally committed as an image and shared through [http://docs.docker.io/en/latest/use/workingwithrepository/ a central image registry]. Docker images are designed to be portable across infrastructures, so they are a great building block for hybrid cloud scenarios.<br />
* Build facility: docker can automate the assembly of a container from an application’s source code. This gives developers an easy way to deploy payloads to an OpenStack cluster as part of [http://docs.docker.io/en/latest/use/builder/ their development workflow].<br />
<br />
<br />
=== How does the Nova hypervisor work under the hood? ===<br />
<br />
The Nova driver embeds a tiny HTTP client which talks with the Docker internal Rest API through a unix socket. It uses the HTTP API to control containers and fetch information about them.<br />
<br />
The driver will fetch images from the OpenStack Image Service (Glance) and load them into the Docker filesystem. Images may be placed in Glance by exporting them from Docker using the 'docker save' command.<br />
<br />
Older versions of this driver required running a private [https://github.com/dotcloud/docker-registry docker-registry], which would proxy to [http://docs.openstack.org/developer/glance/ Glance]. This is no longer required.<br />
<br />
[[File:Docker-under-the-hood.png|center|500px]]<br />
<br />
== Configure an existing OpenStack installation to enable Docker ==<br />
<br />
=== Installing Docker for OpenStack ===<br />
<br />
The first requirement is to [http://docs.docker.io/en/latest/installation/ install Docker] on your compute hosts.<br />
<br />
In order for Nova to communicate with Docker over its local socket, add ''nova'' to the ''docker'' group and restart the compute service to pick up the change:<br />
<br />
usermod -aG docker nova<br />
service openstack-nova-compute restart<br />
<br />
You will also need to install the driver:<br />
<br />
pip install -e git+https://github.com/stackforge/nova-docker#egg=novadocker<br />
<br />
You should then install the required modules <br />
cd src/novadocker/<br />
python setup.py install<br />
<br />
You may optionally choose to create operating-system packages for this, or use another appropriate installation method for your deployment.<br />
<br />
=== Nova configuration ===<br />
<br />
Nova needs to be configured to use the Docker virt driver.<br />
<br />
Edit the configuration file /etc/nova/nova.conf according to the following options:<br />
<br />
[DEFAULT]<br />
compute_driver = novadocker.virt.docker.DockerDriver<br />
<br />
Create the directory /etc/nova/rootwrap.d, if it does not already exist, and inside that directory create a file "docker.filters" with the following content:<br />
<br />
# nova-rootwrap command filters for setting up network in the docker driver<br />
# This file should be owned by (and only-writeable by) the root user<br />
<br />
[Filters]<br />
# nova/virt/docker/driver.py: 'ln', '-sf', '/var/run/netns/.*'<br />
ln: CommandFilter, /bin/ln, root<br />
<br />
=== Glance configuration ===<br />
<br />
Glance needs to be configured to support the "docker" container format. It's important to leave the default ones in order to not break an existing glance install.<br />
<br />
[DEFAULT]<br />
container_formats = ami,ari,aki,bare,ovf,docker<br />
<br />
=== Using Nova-Docker ===<br />
<br />
Once you configured Nova to use the docker driver, the flow is the same as any<br />
other driver.<br />
<br />
$ glance image-list<br />
+-------------------------------+---------------------------------+-------------+------------------+----------+--------+<br />
| ID | Name | Disk Format | Container Format | Size | Status |<br />
+-------------------------------+---------------------------------+-------------+------------------+----------+--------+<br />
| f5049d8b-93cf-49ab-af56-e7... | cirros-0.3.1-x86_64-uec | ami | ami | 25165824 | active |<br />
| 0f1ec86c-157f-4f22-9889-c0... | cirros-0.3.1-x86_64-uec-kernel | aki | aki | 4955792 | active |<br />
| 03a54807-2e35-4864-a337-45... | cirros-0.3.1-x86_64-uec-ramdisk | ari | ari | 3714968 | active |<br />
| 77083f3c-d320-46e3-bcba-0c... | docker-busybox:latest | raw | docker | 2271596 | active |<br />
+-------------------------------+---------------------------------+-------------+------------------+----------+--------+<br />
<br />
Only images with a "docker" container format will be bootable. The image contains basically a tarball of the container filesystem.<br />
<br />
It's recommended to add new images to Glance by using Docker. For instance, here is how you can fetch images from the public registry and push them back to Glance in order to boot a Nova instance with it:<br />
<br />
$ docker search hipache<br />
Found 3 results matching your query ("hipache")<br />
NAME DESCRIPTION<br />
samalba/hipache https://github.com/dotcloud/hipache<br />
<br />
Then, pull the image and push it to Glance:<br />
<br />
$ docker pull samalba/hipache<br />
$ docker save samalba/hipache | glance image-create --is-public=True --container-format=docker --disk-format=raw --name samalba/hipache<br />
<br />
'''NOTE: The name you provide to glance must match the name by which the image is known to docker.'''<br />
<br />
$ glance image-list<br />
+-------------------------------+---------------------------------+-------------+------------------+----------+--------+<br />
| ID | Name | Disk Format | Container Format | Size | Status |<br />
+-------------------------------+---------------------------------+-------------+------------------+----------+--------+<br />
| f5049d8b-93cf-49ab-af56-e7... | cirros-0.3.1-x86_64-uec | ami | ami | 25165824 | active |<br />
| 0f1ec86c-157f-4f22-9889-c0... | cirros-0.3.1-x86_64-uec-kernel | aki | aki | 4955792 | active |<br />
| 03a54807-2e35-4864-a337-45... | cirros-0.3.1-x86_64-uec-ramdisk | ari | ari | 3714968 | active |<br />
| 77083f3c-d320-46e3-bcba-0c... | docker-busybox:latest | raw | docker | 2271596 | active |<br />
| 998f52ba-fe03-46b0-b5a6-4b... | samalba/hipache | raw | docker | 486 | active |<br />
+-------------------------------+---------------------------------+-------------+------------------+----------+--------+<br />
<br />
You can obviously boot instances from nova cli:<br />
<br />
$ nova boot --image "samalba/hipache" --flavor m1.tiny test<br />
+--------------------------------------+--------------------------------------+<br />
| Property | Value |<br />
+--------------------------------------+--------------------------------------+<br />
| OS-EXT-STS:task_state | scheduling |<br />
| image | samalba/hipache |<br />
| OS-EXT-STS:vm_state | building |<br />
| OS-EXT-SRV-ATTR:instance_name | instance-0000002d |<br />
| OS-SRV-USG:launched_at | None |<br />
| flavor | m1.micro |<br />
| id | 31086c50-f937-4f80-9790-045096ecb32c |<br />
| security_groups | [{u'name': u'default'}] |<br />
| user_id | 1a3eed38d1344e869dd019b3636db12b |<br />
| OS-DCF:diskConfig | MANUAL |<br />
| accessIPv4 | |<br />
| accessIPv6 | |<br />
| progress | 0 |<br />
| OS-EXT-STS:power_state | 0 |<br />
| OS-EXT-AZ:availability_zone | nova |<br />
| config_drive | |<br />
| status | BUILD |<br />
| updated | 2013-08-25T00:22:32Z |<br />
| hostId | |<br />
| OS-EXT-SRV-ATTR:host | None |<br />
| OS-SRV-USG:terminated_at | None |<br />
| key_name | None |<br />
| OS-EXT-SRV-ATTR:hypervisor_hostname | None |<br />
| name | test |<br />
| adminPass | QwczSPAAT6Mm |<br />
| tenant_id | 183a9b7ed7c6465f97387458d693ca4c |<br />
| created | 2013-08-25T00:22:31Z |<br />
| os-extended-volumes:volumes_attached | [] |<br />
| metadata | {} |<br />
+--------------------------------------+--------------------------------------+<br />
<br />
Once the instance is booted:<br />
<br />
$ nova list<br />
+--------------------------------------+------+--------+------------+-------------+------------------+<br />
| ID | Name | Status | Task State | Power State | Networks |<br />
+--------------------------------------+------+--------+------------+-------------+------------------+<br />
| 31086c50-f937-4f80-9790-045096ecb32c | test | ACTIVE | None | Running | private=10.0.0.2 |<br />
+--------------------------------------+------+--------+------------+-------------+------------------+<br />
<br />
You can also see the corresponding container on docker:<br />
<br />
$ docker ps<br />
docker ps<br />
ID IMAGE COMMAND CREATED STATUS PORTS<br />
f337c7fec5ff samalba/hipache sh 10 seconds ago Up 10 seconds<br />
<br />
The command used here is the one configured in the image. Each container image can have a command configured for the run. The driver does not usually override this. You can image booting an apache2 instance, it will start the apache process if the image is authored properly via a [http://docs.docker.io/en/latest/use/builder/ Dockerfile].<br />
<br />
== Configure DevStack to use Nova-Docker ==<br />
<br />
''Using the Docker hypervisor via [http://devstack.org/ DevStack] replaces all manual configuration needed above.''<br />
<br />
Note: below, localadmin == admin user, adjust to suit your configuration<br />
<br />
=== Install the latest Docker release ===<br />
<br />
Ubuntu:<br />
[ -e /usr/lib/apt/methods/https ] || {<br />
sudo apt-get update<br />
sudo apt-get install apt-transport-https<br />
}<br />
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 \<br />
--recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9<br />
sudo sh -c "echo deb https://get.docker.com/ubuntu docker main \<br />
> /etc/apt/sources.list.d/docker.list"<br />
sudo apt-get update<br />
sudo apt-get install -y lxc-docker<br />
<br />
source /etc/bash_completion.d/docker # Docker file completion for bash<br />
sudo bash -c "echo DOCKER_OPTS=\'-G localadmin\' >> /etc/default/docker"<br />
sudo restart docker<br />
docker version # Should work!<br />
docker run -i -t ubuntu /bin/bash # Optional test step<br />
<br />
Fedora:<br />
sudo yum -y install docker<br />
sudo yum -y update docker<br />
sudo systemctl start docker<br />
sudo systemctl enable docker<br />
sudo docker run -i -t ubuntu /bin/bash<br />
<br />
=== Prepare Nova-Docker ===<br />
<br />
sudo apt-get update<br />
sudo apt-get install -y python-pip python-dev<br />
<br />
rm -rf /opt/stack/nova-docker<br />
sudo mkdir -p /opt/stack<br />
sudo git clone https://git.openstack.org/openstack/nova-docker /opt/stack/nova-docker<br />
cd /opt/stack/nova-docker<br />
# Check out a different version if not using master, i.e:<br />
# sudo git checkout stable/kilo && sudo git pull --ff-only origin stable/kilo<br />
sudo pip install . # The linecache2 error appears to be benign<br />
<br />
=== Set up Devstack ===<br />
<br />
Clone devstack (it is recommended to use the same releases of devstack and nova-docker, e.g., stable/kilo, master, etc.)<br />
<br />
Before running [http://devstack.org/ DevStack]'s stack.sh script, configure the following options in the local.conf or localrc file:<br />
<br />
[[local|localrc]]<br />
VIRT_DRIVER=novadocker.virt.docker.DockerDriver<br />
<br />
# Introduce glance to docker images<br />
[[post-config|$GLANCE_API_CONF]]<br />
[DEFAULT]<br />
container_formats=ami,ari,aki,bare,ovf,ova,docker<br />
<br />
Configure nova to use the nova-docker driver<br />
Note: neutron is the default as of kilo<br />
<br />
[[post-config|$NOVA_CONF]]<br />
[DEFAULT]<br />
compute_driver=novadocker.virt.docker.DockerDriver<br />
<br />
echo "##### Introduce glance to docker images" >> local.conf<br />
echo "[[post-config|\$GLANCE_API_CONF]]" >> local.conf<br />
echo "[DEFAULT]" >> local.conf<br />
echo container_formats=ami,ari,aki,bare,ovf,ova,docker >> local.conf<br />
echo >> local.conf<br />
echo "##### Configure nova to use the nova-docker driver" >> local.conf<br />
echo "[[post-config|\$NOVA_CONF]]" >> local.conf<br />
echo "[DEFAULT]" >> local.conf<br />
echo compute_driver=novadocker.virt.docker.DockerDriver >> local.conf<br />
echo >> local.conf<br />
<br />
=== Start Devstack ===<br />
./stack.sh<br />
<br />
=== Testing Nova-Docker ===<br />
<br />
Copy the filters<br />
sudo cp /opt/stack/nova-docker/etc/nova/rootwrap.d/docker.filters /etc/nova/rootwrap.d/<br />
<br />
Start a Container<br />
<br />
. openrc admin<br />
<br />
INSTANCE=d1<br />
IMAGE=cirros<br />
<br />
docker pull ${IMAGE}<br />
docker save ${IMAGE} |<br />
glance image-create --name ${IMAGE} --visibility public --container-format docker --disk-format raw<br />
<br />
nova boot --image ${IMAGE} --flavor m1.tiny ${INSTANCE}<br />
sleep 10<br />
nova list<br />
nova show ${INSTANCE}<br />
<br />
Assign it a floating IP and connect to it<br />
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no cirros@${floatingip_ip}<br />
<br />
== Configure DevStack to use Nova-Docker (alternate post-stack method) ==<br />
<br />
''Using the Docker hypervisor via [http://devstack.org/ DevStack] replaces all manual configuration needed above.''<br />
<br />
Install Docker, then install Devstack and run ''stack.sh''<br />
<br />
Once ''stack.sh'' completes, run ''unstack.sh'' from the devstack directory<br />
<br />
Install nova-docker:<br />
<br />
git clone https://git.openstack.org/stackforge/nova-docker /opt/stack/nova-docker<br />
cd /opt/stack/nova-docker<br />
sudo python setup.py install<br />
<br />
Prepare DevStack:<br />
<br />
export INSTALLDIR={Devstack_Parent_Dir}<br />
cd /opt/stack/nova-docker<br />
./contrib/devstack/prepare_devstack.sh<br />
cd ${INSTALLDIR}/devstack<br />
cat localrc >> local.conf<br />
<br />
Run ''stack.sh'' from devstack directory: <br />
<br />
$ ./stack.sh<br />
<br />
It may be necessary to install a Docker filter as well:<br />
<br />
sudo cp /opt/stack/nova-docker/etc/nova/rootwrap.d/docker.filters \<br />
/etc/nova/rootwrap.d/<br />
<br />
== Resources ==<br />
* Jeff Nickoloff; [http://www.manning.com/nickoloff/ Docker in Action], Manning Publications, 2014, ISBN 978-1-6334-3023-5<br />
* Ian Miell and Aidan Hobson Sayers; [http://www.manning.com/miell/ Docker in Practice], Manning Publications, 2015, ISBN 978-1-6172-9272-9<br />
* Lars Kellogg-Stedman; [http://blog.oddbit.com/2015/02/11/installing-novadocker-with-devstack/ Installing Nova-Docker with Devstack] (blog post)<br />
*Allan Espinosa; [https://www.packtpub.com/networking-and-servers/docker-high-performance Docker High Performance], Packt, January 2016, ISBN 978-1-7858-8680-5<br />
*Rajdeep Dua, Vaibhav Kohli, Santosh Kumar Konduri; [https://www.packtpub.com/networking-and-servers/learning-docker-networking Learning Docker Networking], Packt, February 2016, ISBN 978-1-7852-8095-5<br />
*Scott Gallagher; [https://www.packtpub.com/virtualization-and-cloud/securing-docker Securing Docker], Packt, March 2016, ISBN 978-1-7858-8885-4<br />
*Pethuru Raj et al; [https://www.packtpub.com/virtualization-and-cloud/docker-creating-structured-containers Docker: Creating Structured Containers], Packt, June 2016, ISBN 978-1-7864-6593-1<br />
*Russ McKendrick; [https://www.packtpub.com/networking-and-servers/extending-docker Extending Docker], Packt, June 2016, ISBN 978-1-7864-6314-2<br />
*Shrikrishna Holla; [https://www.packtpub.com/virtualization-and-cloud/mastering-docker-video Mastering Docker [Video]], Packt, July 29, 2016, ISBN 978-1-7864-6879-6<br />
<br />
== Community ==<br />
<br />
We have a [https://wiki.openstack.org/wiki/Nova#Nova_subteams Nova Subteam] and involvement of various contributors may be verified via Github's <br />
[https://github.com/stackforge/nova-docker/graphs/contributors contributors page].<br />
<br />
The Docker team is also involved with the more generic and highly-overlapping efforts of the [https://wiki.openstack.org/wiki/Meetings/Containers Nova Containers Sub-team].<br />
<br />
We are available on IRC on Freenode in #nova-docker. The containers team may be found in #openstack-containers.</div>Partners