<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.openvz.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Vitaly+Lipatov</id>
	<title>OpenVZ Virtuozzo Containers Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.openvz.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Vitaly+Lipatov"/>
	<link rel="alternate" type="text/html" href="https://wiki.openvz.org/Special:Contributions/Vitaly_Lipatov"/>
	<updated>2026-06-10T02:44:52Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>https://wiki.openvz.org/index.php?title=Docker_inside_CT&amp;diff=20392</id>
		<title>Docker inside CT</title>
		<link rel="alternate" type="text/html" href="https://wiki.openvz.org/index.php?title=Docker_inside_CT&amp;diff=20392"/>
		<updated>2016-08-15T16:43:40Z</updated>

		<summary type="html">&lt;p&gt;Vitaly Lipatov: /* Prepare Docker in container */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Since OpenVZ kernel [[Download/kernel/rhel6-testing/042stab105.4|042stab105.4]] it is possible to run Docker inside containers. This article describes how.&lt;br /&gt;
&amp;lt;br&amp;gt;'''This page is applicable for OpenVZ 6''' (for Virtuozzo 7 see [[Docker inside CT vz7| '''here''']]).&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
* Kernel 042stab105.4 or later version&lt;br /&gt;
* Kernel modules '''tun''', '''veth''' and '''bridge''' loaded on host (not required since vzctl 4.9 as it loads it automatically)&lt;br /&gt;
&lt;br /&gt;
== Container creation and tuning ==&lt;br /&gt;
&lt;br /&gt;
* Create CentOS 7 container with enough disk space:&lt;br /&gt;
 vzctl create $veid --ostemplate centos-7-x86_64 --diskspace 20G&lt;br /&gt;
* Turn on bridge feature to allow docker creating bridged network:&lt;br /&gt;
 vzctl set $veid --features bridge:on --save&lt;br /&gt;
* Setup Container veth-based network:&lt;br /&gt;
 vzctl set $veid --netif_add eth0 --save&lt;br /&gt;
* Allow all iptables modules to be used in containers:&lt;br /&gt;
 vzctl set $veid --netfilter full --save&lt;br /&gt;
* Enable tun device access for container:&lt;br /&gt;
 vzctl set $veid --devnodes net/tun:rw --save&lt;br /&gt;
* Configure custom cgroups in systemd:&lt;br /&gt;
: &amp;lt;small&amp;gt;''systemd reads /proc/cgroups and mounts all cgroups enabled there, though it doesn't know there's a restriction that only freezer,devices and cpuacct,cpu,cpuset can be mounted in container, but not freezer, cpu etc. separately''&amp;lt;/small&amp;gt;&lt;br /&gt;
 vzctl mount $veid&lt;br /&gt;
 echo &amp;quot;JoinControllers=cpu,cpuacct,cpuset freezer,devices&amp;quot; &amp;gt;&amp;gt; /vz/root/$veid/etc/systemd/system.conf&lt;br /&gt;
* Start the container:&lt;br /&gt;
 vzctl start $veid&lt;br /&gt;
* If you use Debian Wheezy for your CT which does not support systemd, you can run:&lt;br /&gt;
 mount -t tmpfs tmpfs /sys/fs/cgroup&lt;br /&gt;
 mkdir /sys/fs/cgroup/freezer,devices&lt;br /&gt;
 mount -t cgroup cgroup /sys/fs/cgroup/freezer,devices -o freezer,devices&lt;br /&gt;
 mkdir /sys/fs/cgroup/cpu,cpuacct,cpuset&lt;br /&gt;
 mount -t cgroup cgroup /sys/fs/cgroup/cpu,cpuacct,cpuset/ -o cpu,cpuacct,cpuset&lt;br /&gt;
&lt;br /&gt;
== Prepare Docker in container == &lt;br /&gt;
&lt;br /&gt;
These steps are to be performed inside the container.&lt;br /&gt;
&lt;br /&gt;
* Install Docker:&lt;br /&gt;
 yum -y install docker-io&lt;br /&gt;
* Start docker daemon&lt;br /&gt;
 dockerd -s vfs&lt;br /&gt;
or change line in /etc/sysconfig/docker to:&lt;br /&gt;
 OPTIONS='--selinux-enabled -s vfs'&lt;br /&gt;
and&lt;br /&gt;
 service docker start&lt;br /&gt;
&lt;br /&gt;
== Example usage ==&lt;br /&gt;
&lt;br /&gt;
=== Wordpress ===&lt;br /&gt;
&lt;br /&gt;
Use Docker to start Wordpress (official, standard way).&lt;br /&gt;
&lt;br /&gt;
* Start mysql docker:&lt;br /&gt;
 docker run --name test-mysql -e MYSQL_ROOT_PASSWORD=123 -d mysql&lt;br /&gt;
* Start wordpress:&lt;br /&gt;
 docker run --name test-wordpress --link test-mysql:mysql -p 8080:80 -d wordpress&lt;br /&gt;
* Access wordpress server by container IP and port 8080: &amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;http://container_ip:8080&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Limitations ==&lt;br /&gt;
&lt;br /&gt;
* Only &amp;quot;vfs&amp;quot; Docker graph driver is currently supported&lt;br /&gt;
* [[Checkpointing and live migration]] of a container with Docker containers inside is not supported&lt;br /&gt;
* Bridges cannot be created inside Docker containers running inside OpenVZ container&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [http://www.youtube.com/watch?v=rh4oPpLtdYc Docker inside CT demo video].&lt;br /&gt;
&lt;br /&gt;
[[Category:HOWTO]]&lt;br /&gt;
[[Category: TRD]]&lt;/div&gt;</summary>
		<author><name>Vitaly Lipatov</name></author>
		
	</entry>
</feed>